add application name and slug in association context (#19649)
This commit is contained in:
parent
411d6159fe
commit
def3bf449e
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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'
|
||||
|
|
Reference in New Issue