Consult the session for the current service, also persist into the session the last selected service

This commit is contained in:
Benjamin Dauvergne 2010-12-17 16:57:26 +01:00
parent 99d15cc886
commit 2ee2619455
1 changed files with 8 additions and 3 deletions

View File

@ -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')