add decorators 'webpage' decorator for 'website', rewrite views

This commit is contained in:
Arthur Gerbaud
2016-08-07 16:22:19 +02:00
parent a5af70becb
commit d718984a59
7 changed files with 219 additions and 212 deletions

29
website/decorators.py Normal file
View File

@@ -0,0 +1,29 @@
from .mixins import *
def _insert_bases(cls, bases):
old_bases = cls.__bases__
new_bases = tuple(bases) + old_bases
print(new_bases)
cls.__bases__ = new_bases
def webpage(**options):
try: ajax = options.pop('ajax')
except KeyError: ajax = False
try: permissions = options.pop('permissions')
except KeyError: permissions = []
new_bases = []
if ajax:
new_bases.append(WebsiteAjaxTemplateMixin)
else:
new_bases.append(WebsiteTemplateMixin)
if permissions:
new_bases.append(PermissionRequiredMixin)
def update_class(cls):
_insert_bases(cls, new_bases)
if permissions:
cls.permissions = permissions
return cls
return update_class