Projet

Général

Profil

0001-template-loader-look-in-additional-portal-user-locat.patch

Frédéric Péters, 20 juillet 2022 16:51

Télécharger (3,86 ko)

Voir les différences:

Subject: [PATCH] template loader: look in additional portal-user locations
 (#67547)

 hobo/multitenant/settings_loaders.py |  3 +++
 hobo/multitenant/template_loader.py  | 39 +++++++++++++++++++++++++---
 2 files changed, 39 insertions(+), 3 deletions(-)
hobo/multitenant/settings_loaders.py
131 131
    def get_hobo_json_variables(cls, hobo_json):
132 132
        variables = hobo_json.get('variables', {})
133 133
        variables['is_portal_agent'] = False
134
        variables['is_portal_user'] = False
134 135

  
135 136
        authentic_service = None
136 137

  
......
163 164

  
164 165
            if 'portal-agent' in service.get('template_name', ''):
165 166
                variables['is_portal_agent'] = True
167
            elif service.get('service-id') == 'combo':
168
                variables['is_portal_user'] = True
166 169

  
167 170
        if getattr(settings, 'HOBO_MANAGER_HOMEPAGE_TITLE_VAR', None):
168 171
            variables['manager_homepage_title'] = variables.get(settings.HOBO_MANAGER_HOMEPAGE_TITLE_VAR)
hobo/multitenant/template_loader.py
4 4
"""
5 5

  
6 6
import hashlib
7
import itertools
7 8

  
8 9
from django.conf import settings
9 10
from django.core.exceptions import ImproperlyConfigured
......
46 47
        if hasattr(settings, 'TEMPLATE_VARS'):
47 48
            if settings.TEMPLATE_VARS.get('theme'):
48 49
                theme_value = settings.TEMPLATE_VARS['theme']
49
                known_dirnames = [
50
                    '%s/variants/%s' % (x, theme_value) for x in known_dirnames
51
                ] + known_dirnames
50
                if settings.TEMPLATE_VARS.get('is_portal_agent'):
51
                    known_dirnames = (
52
                        list(
53
                            itertools.chain(
54
                                *[
55
                                    (
56
                                        '%s/variants/%s/portal-agent' % (x, theme_value),
57
                                        '%s/variants/%s' % (x, theme_value),
58
                                    )
59
                                    for x in known_dirnames
60
                                ]
61
                            )
62
                        )
63
                        + known_dirnames
64
                    )
65
                elif settings.TEMPLATE_VARS.get('is_portal_user'):
66
                    known_dirnames = (
67
                        list(
68
                            itertools.chain(
69
                                *[
70
                                    (
71
                                        '%s/variants/%s/portal-user' % (x, theme_value),
72
                                        '%s/variants/%s' % (x, theme_value),
73
                                    )
74
                                    for x in known_dirnames
75
                                ]
76
                            )
77
                        )
78
                        + known_dirnames
79
                    )
80
                else:
81
                    known_dirnames = [
82
                        '%s/variants/%s' % (x, theme_value) for x in known_dirnames
83
                    ] + known_dirnames
84

  
52 85
            if settings.TEMPLATE_VARS.get('is_portal_agent'):
53 86
                known_dirnames = ['%s/portal-agent' % x for x in known_dirnames] + known_dirnames
54 87

  
55
-