def init_menu(): ''' Инициализирует/реинициализирует меню ''' globals.menu_list = [] globals.menu_tree = build_menu(Page.active_objects.filter(level=0)) log_threaded ('Init menu...')
def gen_patterns(): ''' Функция, генерирующая urlpatterns на основе страниц полученыых из базы данных ''' urls = [] for page in Page.objects.all().order_by('-tree_id', '-lft'): url = page.url if page.type==PAGE_TYPE_COPY: # Если тип страницы капия то ведем себя как будто мы - это она page=page.link if page.type==PAGE_TYPE_STATIC: # Статическая страница if url: urls.append((r'^(?P<url>%s)/$' % url, static_view )) else: # Главная страница с пустым url urls.append((r'^(?P<url>%s)$' % url, static_view )) elif page.type==PAGE_TYPE_APPLICATION: # Приложение try: module, attr_name = page.app_url.split(' ', 1) except ValueError: # Приложение с загрузкой паттернов из urlpatterns urls.append((r'^%s/' % url, include(page.app_url) )) else: # Приложение с указанием переменной хранящей патерны urls.append((r'^%s/' % url, include( getattr( import_module(module), attr_name) ) )) elif page.type==PAGE_TYPE_REDIRECT: # Перенаправление, такой страницы не существует pass elif page.type==PAGE_TYPE_COPY: # Дубликат, патерны уже созданы, т.к. мы дублировали нормальную страницу pass elif page.type==PAGE_TYPE_LINK: # Ссылка, создавать паттерн не нужно pass log_threaded('Add url patterns...') return patterns('', *urls)