Consult the session for the current service, also persist into the session the last selected service
This commit is contained in:
parent
99d15cc886
commit
2ee2619455
|
@ -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')
|
||||
|
|
Reference in New Issue