From a2889144f927bba4e11471858756917a5e3caded Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Wed, 11 Mar 2015 11:38:28 +0100 Subject: [PATCH] Support variable MANAGER_HOMEPAGE_URL and MANAGER_HOMEPAGE_TILE for the first element of the manager breadcrumb The goal is to ease integration of A2 manager in an administration portal by permitting global navigation between sites. --- src/authentic2/manager/app_settings.py | 19 +++++++++++++++++++ .../manager/templates/authentic2/manager/base.html | 8 +++----- src/authentic2/manager/views.py | 5 +++-- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/authentic2/manager/app_settings.py b/src/authentic2/manager/app_settings.py index 94af283..671269d 100644 --- a/src/authentic2/manager/app_settings.py +++ b/src/authentic2/manager/app_settings.py @@ -1,17 +1,36 @@ import sys class AppSettings(object): __PREFIX = 'A2_MANAGER_' __DEFAULTS = { 'HOMEPAGE_URL': None, + 'HOMEPAGE_TITLE': None, 'LOGOUT_URL': None, } + @property + def HOMEPAGE_URL(self): + from django.conf import settings + return getattr(settings, + '%sHOMEPAGE_URL' % self.__PREFIX, + getattr(settings, + 'MANAGER_HOMEPAGE_URL', + self.__DEFAULTS['HOMEPAGE_URL'])) + + @property + def HOMEPAGE_TITLE(self): + from django.conf import settings + return getattr(settings, + '%sHOMEPAGE_TITLE' % self.__PREFIX, + getattr(settings, + 'MANAGER_HOMEPAGE_TITLE', + self.__DEFAULTS['HOMEPAGE_URL'])) + def __getattr__(self, name): from django.conf import settings if name not in self.__DEFAULTS: raise AttributeError return getattr(settings, self.__PREFIX + name, self.__DEFAULTS[name]) app_settings = AppSettings() app_settings.__name__ = __name__ diff --git a/src/authentic2/manager/templates/authentic2/manager/base.html b/src/authentic2/manager/templates/authentic2/manager/base.html index f61014c..7fa814f 100644 --- a/src/authentic2/manager/templates/authentic2/manager/base.html +++ b/src/authentic2/manager/templates/authentic2/manager/base.html @@ -17,19 +17,17 @@ {% endblock %} -{% block site-url %}{{ management_homepage_url }}{% endblock %} -{% block site-title %}{% trans "Management" %}{% endblock %} +{% block homepage-url %}{{ homepage_url }}{% endblock %} +{% block homepage-title %}{% trans "Management" as default_homepage_title %}{% firstof homepage_title default_homepage_title %}{% endblock %} -{% block logout-url %}{{ management_logout_url }}{% endblock %} - -{% block homepage-url %}{% url "a2-manager-homepage" %}{% endblock %} +{% block logout-url %}{{ logout_url }}{% endblock %} {% block appbar %}

{% block page_title %}{% endblock %}

{% endblock %} diff --git a/src/authentic2/manager/views.py b/src/authentic2/manager/views.py index b26c3b0..baea86f 100644 --- a/src/authentic2/manager/views.py +++ b/src/authentic2/manager/views.py @@ -30,18 +30,19 @@ class Action(object): self.name = name self.title = title self.confirm = confirm self.display = display class ManagerMixin(object): def get_context_data(self, **kwargs): ctx = super(ManagerMixin, self).get_context_data(**kwargs) - ctx['management_homepage_url'] = app_settings.HOMEPAGE_URL or reverse('auth_homepage') - ctx['management_logout_url'] = app_settings.LOGOUT_URL or reverse('auth_logout') + ctx['homepage_url'] = app_settings.HOMEPAGE_URL or reverse('auth_homepage') + ctx['homepage_title'] = app_settings.HOMEPAGE_TITLE + ctx['logout_url'] = app_settings.LOGOUT_URL or reverse('auth_logout') return ctx class RolesMixin(ManagerMixin): def get_context_data(self, **kwargs): ctx = super(ManagerMixin, self).get_context_data(**kwargs) ctx['roles'] = utils.get_roles() ctx['role_add_form'] = forms.RoleAddForm() return ctx -- 1.9.1