add application name and slug in association context (#19649)

This commit is contained in:
Josue Kouka 2017-11-16 14:02:19 +01:00
parent 411d6159fe
commit def3bf449e
3 changed files with 27 additions and 4 deletions

View File

@ -24,6 +24,7 @@ from django.conf.urls import patterns, url
from django.http import Http404
from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import resolve
from django.utils.text import slugify
def get_app_settings():
@ -79,6 +80,15 @@ class AppSettings(object):
return value
return super(AppSettings, self).__getattribute__(name)
def get_name(self):
name = getattr(settings, 'SITE_APP_NAME', None)
if name:
return name
return type(self).__name__
def get_slug(self):
return slugify(type(self).__name__)
# Test App Settings
class Test(AppSettings):

View File

@ -123,10 +123,10 @@ def associate(request, *args, **kwargs):
return HttpResponseRedirect(resolve_url('post-login'))
else:
form = FormFactory()
app_settings = get_app_settings()
response = render(request, 'mandaye/associate.html', {
'form': form,
})
'form': form, 'app': {
'name': app_settings.get_name(), 'slug': app_settings.get_slug()}})
return response

View File

@ -16,7 +16,7 @@ from django.core.urlresolvers import reverse
from mandayejs.mandaye.models import UserCredentials
from mandayejs.mandaye.utils import exec_phantom, get_login_info
from mandayejs.mandaye.forms import FormFactory
from mandayejs.mandaye.views import post_login_do
from mandayejs.mandaye.views import associate, post_login_do
from utils import create_user, create_credentials, get_uuid, get_user
@ -442,3 +442,16 @@ def test_app_settings_overriding(settings, cred_john):
data = get_login_info(request, cred_john)
assert data['address'] == 'http://testserver/'
assert data['form_submit_element'] == ''
def test_app_name_slug_in_association_context(settings, user_john):
client = Client()
client.login(username='john', password='john')
response = client.get(reverse('associate'))
assert response.context['app']['name'] == 'Test'
assert response.context['app']['slug'] == 'test'
# when overidding the appname in settings
settings.SITE_APP_NAME = 'Test A'
response = client.get(reverse('associate'))
assert response.context['app']['name'] == 'Test A'
assert response.context['app']['slug'] == 'test'