aircox-radiocampus/aircox_cms/website.py
2015-10-04 22:05:10 +02:00

52 lines
1.5 KiB
Python

import aircox_cms.routes as routes
class Website:
name = ''
domain = ''
description = 'An aircox website' # public description (used in meta info)
tags = 'aircox,radio,music' # public keywords (used in meta info)
styles = '' # relative url to stylesheet file
menus = None # list of menus
menu_layouts = ['top', 'left', # available positions
'right', 'bottom',
'header', 'footer']
router = None
@property
def urls (self):
return self.router.get_urlpatterns()
def __init__ (self, **kwargs):
self.__dict__.update(kwargs)
if not self.router:
self.router = routes.Router()
def register_set (self, view_set):
"""
Register a ViewSet (or subclass) to the router,
and connect it to self.
"""
view_set = view_set(website = self)
self.router.register_set(view_set)
def get_menu (self, position):
"""
Get an enabled menu by its position
"""
for menu in self.menus:
if menu.enabled and menu.position == position:
self.check_menu_tag(menu)
return menu
def check_menu_tag (self, menu):
"""
Update menu tag if it is a footer or a header
"""
if menu.position in ('footer','header'):
menu.tag = menu.position
if menu.position in ('left', 'right'):
menu.tag = 'side'