Add customization of the theme based upon the domain name
This commit is contained in:
parent
d9824f9c9d
commit
00c67cf7a2
|
@ -1,28 +1,38 @@
|
|||
import qommon.template as template
|
||||
from quixote import get_request
|
||||
from quixote import get_request, get_publisher
|
||||
from qommon import get_cfg
|
||||
from admin_settings import STYLESHEET_URL, REFERER_PREFIX_URL
|
||||
from admin_settings import STYLESHEET_URL, REFERER_PREFIX_URL, THEME, \
|
||||
CUSTOM_DOMAIN
|
||||
|
||||
__old_decorate = template.decorate
|
||||
|
||||
def decorate(body, response):
|
||||
request = get_request()
|
||||
referer = request.environ.get('HTTP_REFERER')
|
||||
domain = request.environ.get('SERVER_NAME')
|
||||
|
||||
print 'REFERER', referer
|
||||
more_css = []
|
||||
body_class = []
|
||||
if referer:
|
||||
requesting_service = None
|
||||
for key, value in get_cfg('providers', {}).iteritems():
|
||||
referer_prefix_url = value.get(REFERER_PREFIX_URL, '')
|
||||
if request.form.get('service') == key or \
|
||||
referer_prefix_url and referer.startswith(referer_prefix_url):
|
||||
requesting_service = key
|
||||
break
|
||||
theme = None
|
||||
stylesheet_url = None
|
||||
requesting_service = None
|
||||
|
||||
for key, value in get_cfg('providers', {}).iteritems():
|
||||
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)):
|
||||
theme = value.get(THEME)
|
||||
requesting_service = key
|
||||
stylesheet_url = value.get(STYLESHEET_URL)
|
||||
break
|
||||
if requesting_service:
|
||||
body_class.append(requesting_service)
|
||||
if requesting_service and value.get(STYLESHEET_URL):
|
||||
more_css.append(value.get(STYLESHEET_URL))
|
||||
if stylesheet_url:
|
||||
more_css.append(stylesheet_url)
|
||||
if theme:
|
||||
get_publisher().cfg['branding']['theme'] = theme
|
||||
response.filter.update({'more_css': more_css, 'body_class': body_class})
|
||||
return __old_decorate(body, response)
|
||||
|
||||
|
|
Reference in New Issue