Projet

Général

Profil

0001-Support-variable-MANAGER_HOMEPAGE_URL-and-MANAGER_HO.patch

Benjamin Dauvergne, 11 mars 2015 11:46

Télécharger (4,39 ko)

Voir les différences:

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(-)
src/authentic2/manager/app_settings.py
1 1
import sys
2 2

  
3 3
class AppSettings(object):
4 4
    __PREFIX = 'A2_MANAGER_'
5 5
    __DEFAULTS = {
6 6
            'HOMEPAGE_URL': None,
7
            'HOMEPAGE_TITLE': None,
7 8
            'LOGOUT_URL': None,
8 9
    }
9 10

  
11
    @property
12
    def HOMEPAGE_URL(self):
13
        from django.conf import settings
14
        return getattr(settings,
15
                '%sHOMEPAGE_URL' % self.__PREFIX,
16
                getattr(settings, 
17
                    'MANAGER_HOMEPAGE_URL',
18
                    self.__DEFAULTS['HOMEPAGE_URL']))
19

  
20
    @property
21
    def HOMEPAGE_TITLE(self):
22
        from django.conf import settings
23
        return getattr(settings,
24
                '%sHOMEPAGE_TITLE' % self.__PREFIX,
25
                getattr(settings, 
26
                    'MANAGER_HOMEPAGE_TITLE',
27
                    self.__DEFAULTS['HOMEPAGE_URL']))
28

  
10 29
    def __getattr__(self, name):
11 30
        from django.conf import settings
12 31
        if name not in self.__DEFAULTS:
13 32
            raise AttributeError
14 33
        return getattr(settings, self.__PREFIX + name, self.__DEFAULTS[name])
15 34

  
16 35
app_settings = AppSettings()
17 36
app_settings.__name__ = __name__
src/authentic2/manager/templates/authentic2/manager/base.html
17 17
  <script type="text/javascript" src="{% static "authentic2/manager/js/manager.js" %}"></script>
18 18
  <script type="text/javascript" src="/static/js/select2.js"></script>
19 19
  <script type="text/javascript" src="/static/js/heavy_data.js"></script>
20 20
  <script>
21 21
    window.csrf_token = '{{ csrf_token }}';
22 22
  </script>
23 23
{% endblock %}
24 24

  
25
{% block site-url %}{{ management_homepage_url }}{% endblock %}
26
{% block site-title %}{% trans "Management" %}{% endblock %}
25
{% block homepage-url %}{{ homepage_url }}{% endblock %}
26
{% block homepage-title %}{% trans "Management" as default_homepage_title %}{% firstof homepage_title default_homepage_title %}{% endblock %}
27 27

  
28
{% block logout-url %}{{ management_logout_url }}{% endblock %}
29

  
30
{% block homepage-url %}{% url "a2-manager-homepage" %}{% endblock %}
28
{% block logout-url %}{{ logout_url }}{% endblock %}
31 29

  
32 30
{% block appbar %}
33 31
  <h2>{% block page_title %}{% endblock %}</h2>
34 32
{% endblock %}
35 33

  
src/authentic2/manager/views.py
30 30
        self.name = name
31 31
        self.title = title
32 32
        self.confirm = confirm
33 33
        self.display = display
34 34

  
35 35
class ManagerMixin(object):
36 36
    def get_context_data(self, **kwargs):
37 37
        ctx = super(ManagerMixin, self).get_context_data(**kwargs)
38
        ctx['management_homepage_url'] = app_settings.HOMEPAGE_URL or reverse('auth_homepage')
39
        ctx['management_logout_url'] = app_settings.LOGOUT_URL or reverse('auth_logout')
38
        ctx['homepage_url'] = app_settings.HOMEPAGE_URL or reverse('auth_homepage')
39
        ctx['homepage_title'] = app_settings.HOMEPAGE_TITLE
40
        ctx['logout_url'] = app_settings.LOGOUT_URL or reverse('auth_logout')
40 41
        return ctx
41 42

  
42 43
class RolesMixin(ManagerMixin):
43 44
    def get_context_data(self, **kwargs):
44 45
        ctx = super(ManagerMixin, self).get_context_data(**kwargs)
45 46
        ctx['roles'] = utils.get_roles()
46 47
        ctx['role_add_form'] = forms.RoleAddForm()
47 48
        return ctx
48
-