Add template "theme" feature, albeit global
would be even better to let each user session have something different, but alas this is all-or-nothing for now
This commit is contained in:
parent
f05d50bce3
commit
ea0dc1ea19
8 changed files with 377 additions and 20 deletions
|
@ -42,6 +42,7 @@ import tailbone
|
|||
from tailbone import forms
|
||||
from tailbone.db import Session
|
||||
from tailbone.views import View
|
||||
from tailbone.util import set_app_theme
|
||||
|
||||
|
||||
class Feedback(colander.Schema):
|
||||
|
@ -125,6 +126,22 @@ class CommonView(View):
|
|||
('Tailbone', tailbone.__version__),
|
||||
])
|
||||
|
||||
def change_theme(self):
|
||||
"""
|
||||
Simple view which can change user's visible UI theme, then redirect
|
||||
user back to referring page.
|
||||
"""
|
||||
theme = self.request.params.get('theme')
|
||||
if theme:
|
||||
try:
|
||||
set_app_theme(self.request, theme, session=Session())
|
||||
except Exception as error:
|
||||
msg = "Failed to set theme: {}: {}".format(error.__class__.__name__, error)
|
||||
self.request.session.flash(msg, 'error')
|
||||
else:
|
||||
self.request.session.flash("App theme has been changed to: {}".format(theme))
|
||||
return self.redirect(self.request.get_referrer())
|
||||
|
||||
def feedback(self):
|
||||
"""
|
||||
Generic view to present/handle the user feedback form.
|
||||
|
@ -188,6 +205,12 @@ class CommonView(View):
|
|||
config.add_route('mobile.about', '/mobile/about')
|
||||
config.add_view(cls, attr='about', route_name='mobile.about', renderer='/mobile/about.mako')
|
||||
|
||||
# change theme
|
||||
config.add_tailbone_permission('common', 'common.change_app_theme',
|
||||
"Change global App Template Theme")
|
||||
config.add_route('change_theme', '/change-theme', request_method='POST')
|
||||
config.add_view(cls, attr='change_theme', route_name='change_theme')
|
||||
|
||||
# feedback
|
||||
config.add_route('feedback', '/feedback', request_method='POST')
|
||||
config.add_view(cls, attr='feedback', route_name='feedback', renderer='json')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue