diff --git a/extra/modules/qommon_template.py b/extra/modules/qommon_template.py index 20e7931..d599ce4 100644 --- a/extra/modules/qommon_template.py +++ b/extra/modules/qommon_template.py @@ -1,5 +1,5 @@ import qommon.template as template -from quixote import get_request, get_publisher +from quixote import get_request, get_publisher, get_session from qommon import get_cfg from admin_settings import STYLESHEET_URL, REFERER_PREFIX_URL, THEME, \ CUSTOM_DOMAIN @@ -10,6 +10,7 @@ def decorate(body, response): request = get_request() referer = request.environ.get('HTTP_REFERER') domain = request.environ.get('SERVER_NAME') + session = get_session() more_css = [] body_class = [] @@ -21,13 +22,15 @@ def decorate(body, response): custom_domain = value.get(CUSTOM_DOMAIN) referer_prefix_url = value.get(REFERER_PREFIX_URL) if custom_domain == domain or \ - request.form.get('service') == key or \ - (referer_prefix_url and referer and referer.startswith(referer_prefix_url)): + (request.form and request.form.get('service') == key) or \ + (referer_prefix_url and referer and referer.startswith(referer_prefix_url)) or \ + getattr(session, 'service', None) == key: theme = value.get(THEME) requesting_service = key stylesheet_url = value.get(STYLESHEET_URL) break if requesting_service: + session.service = requesting_service body_class.append(requesting_service) if stylesheet_url: more_css.append(stylesheet_url) @@ -37,3 +40,5 @@ def decorate(body, response): return __old_decorate(body, response) template.decorate = decorate +import authentic.sessions +authentic.sessions.BasicSession._has_info_keys.append('service')