def build_sitetree(): """Строит древо сайта, исходя из достпных областей сайта. :return: """ from sitetree.sitetreeapp import register_dynamic_trees, compose_dynamic_tree # Потакаем поведению Django 1.7 при загрузке приложений. register_dynamic_trees( compose_dynamic_tree(( tree('main', 'Основное дерево', ( item('PYTHONZ', '/', alias='topmenu', url_as_pattern=False, children=(realm.get_sitetree_items() for realm in get_realms())), item('Вход', 'login', access_guest=True, in_menu=False, in_breadcrumbs=False), item('Личное меню', '#', alias='personal', url_as_pattern=False, access_loggedin=True, in_menu=False, in_sitetree=False, children=( item('Профиль', 'users:details request.user.id', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), item('Настройки', 'users:edit request.user.id', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), item('Выход', 'logout', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), )), )), tree('about', 'О проекте', ( item('Что такое Python', '/promo/', url_as_pattern=False), item('О проекте', '/about/', url_as_pattern=False), item('Карта сайта', '/sitemap/', url_as_pattern=False), item('Поиск по сайту', '/search/', url_as_pattern=False), )) )), reset_cache=True )
def test_basic(self): register_dynamic_trees( ( compose_dynamic_tree( ( tree( "dynamic_main_root", items=( item("dynamic_main_root_1", "dynamic_main_root_1_url", url_as_pattern=False), item("dynamic_main_root_2", "dynamic_main_root_2_url", url_as_pattern=False), ), ), ), target_tree_alias="main", ), compose_dynamic_tree( ( tree( "dynamic_main_sub", items=( item("dynamic_main_sub_1", "dynamic_main_sub_1_url", url_as_pattern=False), item("dynamic_main_sub_2", "dynamic_main_sub_2_url", url_as_pattern=False), ), ), ), target_tree_alias="main", parent_tree_item_alias="for_dynamic", ), compose_dynamic_tree( ( tree( "dynamic", items=( item( "dynamic_1", "dynamic_1_url", children=(item("dynamic_1_sub_1", "dynamic_1_sub_1_url", url_as_pattern=False),), url_as_pattern=False, ), item("dynamic_2", "dynamic_2_url", url_as_pattern=False), ), ), ) ), ) ) self.sitetree._global_context = get_mock_context(path="/the_same_url/") tree_alias, sitetree_items = self.sitetree.get_sitetree("main") self.assertEqual(len(sitetree_items), 5) self.assertEqual(sitetree_items[3].title, "dynamic_main_root_1") self.assertEqual(sitetree_items[4].title, "dynamic_main_root_2") children = self.sitetree.get_children("main", self.t1_root) self.assertEqual(len(children), 2) tree_alias, sitetree_items = self.sitetree.get_sitetree("dynamic") self.assertEqual(len(sitetree_items), 3) children = self.sitetree.get_children("dynamic", sitetree_items[0]) self.assertEqual(len(children), 1)
def basic_test(self, new_style=False, reset_cache=False): trees = ( compose_dynamic_tree((tree('dynamic_main_root', items=( item('dynamic_main_root_1', 'dynamic_main_root_1_url', url_as_pattern=False), item('dynamic_main_root_2', 'dynamic_main_root_2_url', url_as_pattern=False), )), ), target_tree_alias='main'), compose_dynamic_tree((tree('dynamic_main_sub', items=( item('dynamic_main_sub_1', 'dynamic_main_sub_1_url', url_as_pattern=False), item('dynamic_main_sub_2', 'dynamic_main_sub_2_url', url_as_pattern=False), )), ), target_tree_alias='main', parent_tree_item_alias='for_dynamic'), compose_dynamic_tree( (tree('dynamic', items=( item('dynamic_1', 'dynamic_1_url', children=(item('dynamic_1_sub_1', 'dynamic_1_sub_1_url', url_as_pattern=False), ), url_as_pattern=False), item('dynamic_2', 'dynamic_2_url', url_as_pattern=False), )), )), ) kwargs = {'reset_cache': reset_cache} if new_style: register_dynamic_trees(*trees, **kwargs) else: register_dynamic_trees(trees, **kwargs) self.sitetree._global_context = get_mock_context(path='/the_same_url/') tree_alias, sitetree_items = self.sitetree.get_sitetree('main') self.assertEqual(len(sitetree_items), 5) self.assertEqual(sitetree_items[3].title, 'dynamic_main_root_1') self.assertEqual(sitetree_items[4].title, 'dynamic_main_root_2') children = self.sitetree.get_children('main', self.t1_root) self.assertEqual(len(children), 2) tree_alias, sitetree_items = self.sitetree.get_sitetree('dynamic') self.assertEqual(len(sitetree_items), 3) children = self.sitetree.get_children('dynamic', sitetree_items[0]) self.assertEqual(len(children), 1)
def test_basic(self): register_dynamic_trees(( compose_dynamic_tree((tree('dynamic_main_root', items=( item('dynamic_main_root_1', 'dynamic_main_root_1_url', url_as_pattern=False), item('dynamic_main_root_2', 'dynamic_main_root_2_url', url_as_pattern=False), )), ), target_tree_alias='main'), compose_dynamic_tree((tree('dynamic_main_sub', items=( item('dynamic_main_sub_1', 'dynamic_main_sub_1_url', url_as_pattern=False), item('dynamic_main_sub_2', 'dynamic_main_sub_2_url', url_as_pattern=False), )), ), target_tree_alias='main', parent_tree_item_alias='for_dynamic'), compose_dynamic_tree( (tree('dynamic', items=( item('dynamic_1', 'dynamic_1_url', children=(item('dynamic_1_sub_1', 'dynamic_1_sub_1_url', url_as_pattern=False), ), url_as_pattern=False), item('dynamic_2', 'dynamic_2_url', url_as_pattern=False), )), )), )) self.sitetree._global_context = get_mock_context(path='/the_same_url/') tree_alias, sitetree_items = self.sitetree.get_sitetree('main') self.assertEqual(len(sitetree_items), 5) self.assertEqual(sitetree_items[3].title, 'dynamic_main_root_1') self.assertEqual(sitetree_items[4].title, 'dynamic_main_root_2') children = self.sitetree.get_children('main', self.t1_root) self.assertEqual(len(children), 2) tree_alias, sitetree_items = self.sitetree.get_sitetree('dynamic') self.assertEqual(len(sitetree_items), 3) children = self.sitetree.get_children('dynamic', sitetree_items[0]) self.assertEqual(len(children), 1)
def build_sitetree(cls, **kwargs): """Строит динамическое дерево справочника под именем `references`.""" root_id = object() root_item = get_sitetree_root_item() temp_ref_items = {root_id: root_item} ref_items = list(cls.model.get_actual().select_related('parent').only( 'id', 'parent_id', 'parent__title', 'slug', 'status').order_by('parent_id', 'title', 'id')) def get_tree_item(ref_item): item_id = getattr(ref_item, 'id', root_id) tree_item = temp_ref_items.get(item_id) if not tree_item: tree_item = item(ref_item.title, ref_item.get_absolute_url(), url_as_pattern=False) temp_ref_items[item_id] = tree_item return tree_item for ref_item in ref_items: parent = get_tree_item(ref_item.parent) child = get_tree_item(ref_item) child.parent = parent parent.dynamic_children.append(child) from sitetree.sitetreeapp import register_dynamic_trees, compose_dynamic_tree register_dynamic_trees(compose_dynamic_tree( [tree('references', items=[root_item])]), reset_cache=True)
def build_sitetree(cls, **kwargs): """Строит динамическое дерево справочника под именем `references`.""" root_id = object() root_item = get_sitetree_root_item() temp_ref_items = {root_id: root_item} ref_items = list(cls.model.get_actual().select_related('parent').only( 'id', 'parent_id', 'parent__title', 'slug', 'status' ).order_by('parent_id', 'title', 'id')) def get_tree_item(ref_item): item_id = getattr(ref_item, 'id', root_id) tree_item = temp_ref_items.get(item_id) if not tree_item: tree_item = item(ref_item.title, ref_item.get_absolute_url(), url_as_pattern=False) temp_ref_items[item_id] = tree_item return tree_item for ref_item in ref_items: parent = get_tree_item(ref_item.parent) child = get_tree_item(ref_item) child.parent = parent parent.dynamic_children.append(child) from sitetree.sitetreeapp import register_dynamic_trees, compose_dynamic_tree register_dynamic_trees(compose_dynamic_tree([tree('references', items=[root_item])]), reset_cache=True)
def basic_test(self, new_style=False, reset_cache=False): trees = ( compose_dynamic_tree(( tree('dynamic_main_root', items=( item('dynamic_main_root_1', 'dynamic_main_root_1_url', url_as_pattern=False), item('dynamic_main_root_2', 'dynamic_main_root_2_url', url_as_pattern=False), )), ), target_tree_alias='main'), compose_dynamic_tree(( tree('dynamic_main_sub', items=( item('dynamic_main_sub_1', 'dynamic_main_sub_1_url', url_as_pattern=False), item('dynamic_main_sub_2', 'dynamic_main_sub_2_url', url_as_pattern=False), )), ), target_tree_alias='main', parent_tree_item_alias='for_dynamic'), compose_dynamic_tree(( tree('dynamic', items=( item('dynamic_1', 'dynamic_1_url', children=( item('dynamic_1_sub_1', 'dynamic_1_sub_1_url', url_as_pattern=False), ), url_as_pattern=False), item('dynamic_2', 'dynamic_2_url', url_as_pattern=False), )), )), ) kwargs = { 'reset_cache': reset_cache } if new_style: register_dynamic_trees(*trees, **kwargs) else: register_dynamic_trees(trees, **kwargs) self.sitetree._global_context = get_mock_context(path='/the_same_url/') tree_alias, sitetree_items = self.sitetree.get_sitetree('main') self.assertEqual(len(sitetree_items), 5) self.assertEqual(sitetree_items[3].title, 'dynamic_main_root_1') self.assertEqual(sitetree_items[4].title, 'dynamic_main_root_2') children = self.sitetree.get_children('main', self.t1_root) self.assertEqual(len(children), 2) tree_alias, sitetree_items = self.sitetree.get_sitetree('dynamic') self.assertEqual(len(sitetree_items), 3) children = self.sitetree.get_children('dynamic', sitetree_items[0]) self.assertEqual(len(children), 1)
def build_sitetree(): """Строит древо сайта, исходя из доступных областей сайта. :return: """ # Потакаем поведению Django 1.7 при загрузке приложений. from sitetree.sitetreeapp import register_dynamic_trees, compose_dynamic_tree register_dynamic_trees( compose_dynamic_tree(( tree('main', 'Основное дерево', ( get_sitetree_root_item((realm.get_sitetree_items() for realm in get_realms().values())), item('Вход', 'login', access_guest=True, in_menu=False, in_breadcrumbs=False), item('', '/', alias='personal', url_as_pattern=False, access_loggedin=True, in_menu=False, in_sitetree=False, children=( item('Профиль', 'users:details request.user.id', access_loggedin=True, in_breadcrumbs=True, in_sitetree=False), item('Настройки', 'users:edit request.user.id', access_loggedin=True, in_breadcrumbs=True, in_sitetree=False), item('Выход', 'logout', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), )), )), tree('about', 'О проекте', ( item('Что такое Python', '/promo/', description='Краткие сведения о возможностях и областях применения языка программирования Python.', url_as_pattern=False), item('О проекте', '/about/', description='Информация о проекте. О том, как, кем и для чего разрабатывается данный сайт.', url_as_pattern=False), item('Карта сайта', '/sitemap/', description='Список разделов на сайте оформленный в виде карты сайта.', url_as_pattern=False), item('Поиск по сайту', '/search/site/', description='Глобальный поиск по материалам, расположенным на сайте.', url_as_pattern=False), item('Результаты поиска «{{ search_term }}»', '/search/', url_as_pattern=False, in_menu=False, in_sitetree=False), )) )), reset_cache=True ) ReferenceRealm.build_sitetree()
def build_sitetree(): """Строит древо сайта, исходя из доступных областей сайта. :return: """ # Потакаем поведению Django 1.7 при загрузке приложений. from sitetree.sitetreeapp import register_dynamic_trees, compose_dynamic_tree register_dynamic_trees( compose_dynamic_tree(( tree('main', 'Основное дерево', ( get_sitetree_root_item((realm.get_sitetree_items() for realm in get_realms().values())), item('Вход', 'login', access_guest=True, in_menu=False, in_breadcrumbs=False), item('Личное меню', '#', alias='personal', url_as_pattern=False, access_loggedin=True, in_menu=False, in_sitetree=False, children=( item('Профиль', 'users:details request.user.id', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), item('Настройки', 'users:edit request.user.id', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), item('Выход', 'logout', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), )), )), tree('about', 'О проекте', ( item('Что такое Python', '/promo/', description='Краткие сведения о возможностях и областях применения языка программирования Python.', url_as_pattern=False), item('О проекте', '/about/', description='Информация о проекте. О том, как, кем и для чего разрабатывается данный сайт.', url_as_pattern=False), item('Карта сайта', '/sitemap/', description='Список разделов на сайте оформленный в виде карты сайта.', url_as_pattern=False), item('Поиск по сайту', '/search/site/', description='Глобальный поиск по материалам, расположенным на сайте.', url_as_pattern=False), item('Результаты поиска «{{ search_term }}»', '/search/', url_as_pattern=False, in_menu=False, in_sitetree=False), )) )), reset_cache=True ) ReferenceRealm.build_sitetree()
def sitetrees_build(): items = [] for competition in Competition.objects.filter(is_in_menu=True): children = [] if competition.processing_class: _class = load_class(competition.processing_class) processing = _class(competition=competition) items.append(processing.build_menu()) else: items.append(item(unicode(competition), '#', url_as_pattern=False, children=children)) return (tree('dynamic_competition', items=items),)
def sitetrees_build(): activate("lv") items = [] for competition in Competition.objects.filter(is_in_menu=True): children = [] if competition.processing_class: _class = load_class(competition.processing_class) processing = _class(competition=competition) items.append(processing.build_manager_menu()) else: items.append(item(str(competition), '#', url_as_pattern=False, children=children, access_loggedin=True)) return (tree('dynamic_competition_manager', items=items),)
def build_sitetree(): """Строит древо сайта, исходя из доступных областей сайта. :return: """ # Потакаем поведению Django 1.7 при загрузке приложений. from sitetree.sitetreeapp import register_dynamic_trees, compose_dynamic_tree register_dynamic_trees( compose_dynamic_tree(( tree('main', 'Основное дерево', ( item('Про Python', '/', alias='topmenu', url_as_pattern=False, description='Материалы по языку программирования Python. Книги, видео, сообщества ' 'и многое другое.', children=(realm.get_sitetree_items() for realm in get_realms().values())), item('Вход', 'login', access_guest=True, in_menu=False, in_breadcrumbs=False), item('Личное меню', '#', alias='personal', url_as_pattern=False, access_loggedin=True, in_menu=False, in_sitetree=False, children=( item('Профиль', 'users:details request.user.id', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), item('Настройки', 'users:edit request.user.id', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), item('Выход', 'logout', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), )), )), tree('about', 'О проекте', ( item('Что такое Python', '/promo/', description='Краткие сведения о языке программирования Python.', url_as_pattern=False), item('О проекте', '/about/', description='Информация о проекте pythonz.net.', url_as_pattern=False), item('Карта сайта', '/sitemap/', description='Список разделов проекта pythonz.net.', url_as_pattern=False), item('Поиск по сайту', '/search/site/', url_as_pattern=False), item('Результаты поиска «{{ search_term }}»', '/search/', url_as_pattern=False, in_menu=False, in_sitetree=False), )) )), reset_cache=True )
def test_basic(self): register_dynamic_trees(( compose_dynamic_tree(( tree('dynamic_main_root', items=( item('dynamic_main_root_1', 'dynamic_main_root_1_url', url_as_pattern=False), item('dynamic_main_root_2', 'dynamic_main_root_2_url', url_as_pattern=False), )), ), target_tree_alias='main'), compose_dynamic_tree(( tree('dynamic_main_sub', items=( item('dynamic_main_sub_1', 'dynamic_main_sub_1_url', url_as_pattern=False), item('dynamic_main_sub_2', 'dynamic_main_sub_2_url', url_as_pattern=False), )), ), target_tree_alias='main', parent_tree_item_alias='for_dynamic'), compose_dynamic_tree(( tree('dynamic', items=( item('dynamic_1', 'dynamic_1_url', children=( item('dynamic_1_sub_1', 'dynamic_1_sub_1_url', url_as_pattern=False), ), url_as_pattern=False), item('dynamic_2', 'dynamic_2_url', url_as_pattern=False), )), )), )) self.sitetree._global_context = get_mock_context(path='/the_same_url/') tree_alias, sitetree_items = self.sitetree.get_sitetree('main') self.assertEqual(len(sitetree_items), 5) self.assertEqual(sitetree_items[3].title, 'dynamic_main_root_1') self.assertEqual(sitetree_items[4].title, 'dynamic_main_root_2') children = self.sitetree.get_children('main', self.t1_root) self.assertEqual(len(children), 2) tree_alias, sitetree_items = self.sitetree.get_sitetree('dynamic') self.assertEqual(len(sitetree_items), 3) children = self.sitetree.get_children('dynamic', sitetree_items[0]) self.assertEqual(len(children), 1)
def sitetrees_build(lang): items = [] for competition in Competition.objects.filter(is_in_menu=True): children = [] if competition.processing_class: _class = load_class(competition.processing_class) processing = _class(competition=competition) items.append(processing.build_menu(lang)) else: items.append( item(str(competition), '#', url_as_pattern=False, children=children)) return tree('dynamic_competition', items=items),
def basic_test(self, new_style=False, reset_cache=False): trees = ( compose_dynamic_tree(( tree('dynamic_main_root', items=( item('dynamic_main_root_1', 'dynamic_main_root_1_url', url_as_pattern=False, sort_order=2), item('dynamic_main_root_2', 'dynamic_main_root_2_url', url_as_pattern=False, sort_order=1), )), ), target_tree_alias='main'), compose_dynamic_tree(( tree('dynamic_main_sub', items=( item('dynamic_main_sub_1', 'dynamic_main_sub_1_url', url_as_pattern=False, access_by_perms=['auth.add_group', 'auth.change_group']), item('dynamic_main_sub_2', 'dynamic_main_sub_2_url', url_as_pattern=False, access_by_perms=['auth.add_group'], perms_mode_all=False), )), ), target_tree_alias='main', parent_tree_item_alias='for_dynamic'), compose_dynamic_tree(( tree('dynamic', items=( item('dynamic_1', 'dynamic_1_url', children=( item('dynamic_1_sub_1', 'dynamic_1_sub_1_url', url_as_pattern=False), ), url_as_pattern=False), item('dynamic_2', 'dynamic_2_url', url_as_pattern=False), )), )), ) kwargs = { 'reset_cache': reset_cache } if new_style: register_dynamic_trees(*trees, **kwargs) else: register_dynamic_trees(trees, **kwargs) mock_context = get_mock_context(path='/the_same_url/') self.sitetree._global_context = mock_context tree_alias, sitetree_items = self.sitetree.get_sitetree('main') if reset_cache: self.assertEqual(len(sitetree_items), 13) children = self.sitetree.get_children('main', self.tree_main_root) self.assertEqual(len(children), 6) tree_alias, sitetree_items = self.sitetree.get_sitetree('dynamic') self.assertEqual(len(sitetree_items), 9) children = self.sitetree.get_children('dynamic', sitetree_items[0]) self.assertEqual(len(children), 1) else: mock_user = MockUser(True) self.assertFalse(self.sitetree.check_access(sitetree_items[1], {'user': mock_user})) self.assertTrue(self.sitetree.check_access(sitetree_items[2], {'user': mock_user})) self.assertFalse(self.sitetree.check_access(sitetree_items[2], { 'user': MockUser(True, permissions=['dummy.dummy'])})) self.assertEqual(len(sitetree_items), 5) self.assertEqual(sitetree_items[1].perms, set(['auth.add_group', 'auth.change_group'])) self.assertEqual(sitetree_items[3].title, 'dynamic_main_root_1') self.assertEqual(sitetree_items[4].title, 'dynamic_main_root_2') self.assertEqual(sitetree_items[3].sort_order, 2) self.assertEqual(sitetree_items[4].sort_order, 1) self.assertIsNone(getattr(sitetree_items[3], 'perms', None)) children = self.sitetree.get_children('main', self.tree_main_root) self.assertEqual(len(children), 2) tree_alias, sitetree_items = self.sitetree.get_sitetree('dynamic') self.assertEqual(len(sitetree_items), 3) children = self.sitetree.get_children('dynamic', sitetree_items[0]) self.assertEqual(len(children), 1)
# -*- coding: utf-8 -*- from __future__ import unicode_literals from sitetree.utils import tree, item sitetrees = ( tree('main', title='Menu principal', items=[ item('Início', 'home', alias='home', in_menu=True, in_sitetree=True), ]), ) dynamic_sitetrees = ( tree('dynamic_main', items=[ item('Alterar senha', 'password_change', in_menu=False, in_sitetree=False), ]), )
items = item(title, url) print items return tree('catalog', items) sitetrees = make_tree() ''' sitetrees = ( # Define a tree with `tree` function. tree( 'books', items=[ # Then define items and their children with `item` function. item('Books', 'books-listing', children=[ item('Book named "{{ book.title }}"', 'books-details', in_menu=False, in_sitetree=False), item('Add a book', 'books-add'), item('Edit "{{ book.title }}"', 'books-edit', in_menu=False, in_sitetree=False) ]) ]), # ... You can define more than one tree for your app. )
from sitetree.utils import tree, item # Be sure you defined `sitetrees` in your module. sitetrees = ( # Define a tree with `tree` function. tree('metab_all', items=[ # Then define items and their children with `item` function. item('METAB', 'add_run', children=[ item('Add run', 'add_run', in_menu=True, in_sitetree=True), item('Add File to Run','upload_mfile', in_menu=True, in_sitetree=True), item('Batch upload of files', 'upload_mfiles_batch', in_menu=True, in_sitetree=True), item('Show all metabolomics files', 'mfile_summary', in_menu=True, in_sitetree=True), item('Show LC-MS datasets', 'cpeakgroupmeta_summary', in_menu=True, in_sitetree=True), item('Fragmentation search', 'frag_search', in_menu=True, in_sitetree=True), item('Mass search', 'mass_search', in_menu=True, in_sitetree=True), item('Upload library spectra', 'library_upload', in_menu=True, in_sitetree=True) ]) ]), # ... You can define more than one tree for your app. )
tree('ralph_admin', items=[ ralph_item( title=_('Data Center'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('All hosts'), 'data_center', 'DCHost'), ralph_item( title=_('DC Visualization'), url='dc_view', access_by_perms='accounts.can_view_extra_serverroomview' ), section(_('Hardware'), 'data_center', 'DataCenterAsset'), section(_('Virtual Servers'), 'virtual', 'VirtualServer'), section(_('Clusters'), 'data_center', 'cluster'), section(_('Data Centers'), 'data_center', 'DataCenter'), section(_('Racks'), 'data_center', 'Rack'), section(_('Rack accessories'), 'data_center', 'RackAccessory'), section(_('accessories'), 'data_center', 'Accessory'), section(_('Databases'), 'data_center', 'Database'), section(_('Disk Shares'), 'data_center', 'DiskShare'), section(_('Server Rooms'), 'data_center', 'ServerRoom'), section(_('VIPs'), 'data_center', 'VIP'), section(_('Preboots'), 'deployment', 'Preboot'), section( _('Preboot configuration'), 'deployment', 'PrebootConfiguration' ), section(_('Preboot files'), 'deployment', 'PrebootFile'), ], ), ralph_item( title=_('Cloud'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Cloud hosts'), 'virtual', 'CloudHost'), section(_('Cloud projects'), 'virtual', 'CloudProject'), section(_('Cloud flavors'), 'virtual', 'CloudFlavor'), section(_('Cloud providers'), 'virtual', 'CloudProvider'), section(_('Cloud images'), 'virtual', 'CloudImage'), ], ), ralph_item( title=_('Back Office'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Access Cards'), 'access_cards', 'AccessCard'), section(_('Hardware'), 'back_office', 'backofficeasset'), section(_('SIM Cards'), 'sim_cards', 'SIMCard'), section(_('Accessory'), 'accessories', 'Accessory'), ] ), ralph_item( title=_('Networks'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Networks'), 'networks', 'network'), section( _('Network environments'), 'networks', 'networkenvironment' ), section(_('Network kind'), 'networks', 'networkkind'), section(_('IP Addresses'), 'networks', 'ipaddress'), section(_('DHCP Servers'), 'dhcp', 'DHCPServer'), section(_('DNS Server Groups'), 'dhcp', 'DNSServerGroup'), section(_('DNS Servers'), 'dhcp', 'DNSServer'), ] ), ralph_item( title=_('Licenses'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Licences'), 'licences', 'Licence'), section(_('Types'), 'licences', 'LicenceType'), section(_('Software'), 'licences', 'Software'), ] ), ralph_item( title=_('Intellectual Property'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Trade Marks'), 'trade_marks', 'TradeMark'), section(_('Designs'), 'trade_marks', 'Design'), section(_('Patents'), 'trade_marks', 'Patent'), section(_('Domains'), 'domains', 'Domain'), section(_('Contracts'), 'domains', 'DomainContract'), section(_('Registrants'), 'domains', 'DomainRegistrant'), section(_('Owners'), 'accounts', 'RalphUser'), section(_('DNS Providers'), 'domains', 'DNSProvider'), section(_('Domain Categories'), 'domains', 'DomainCategory'), section(_('SSL Certificates'), 'ssl_certificates', 'SSLCertificate') ] ), ralph_item( title=_('Supports'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Supports'), 'supports', 'Support'), section(_('Types'), 'supports', 'SupportType'), section(_('Assets supports'), 'supports', 'BaseObjectsSupport'), ] ), ralph_item( title=_('Reports'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ ralph_item( title=_('Category model'), url='category_model_report', access_by_perms=( 'accounts.can_view_extra_categorymodelreport' ), ), ralph_item( title=_('Category model status'), url='category_model__status_report', access_by_perms=( 'accounts.can_view_extra_categorymodelstatusreport' ), ), ralph_item( title=_('Manufacturer category model'), url='manufactured_category_model_report', access_by_perms=( 'accounts.' 'can_view_extra_manufacturercategorymodelreport' ), ), ralph_item( title=_('Status model'), url='status_model_report', access_by_perms=( 'accounts.can_view_extra_statusmodelreport' ), ), ralph_item( title=_('Asset - relations'), url='asset-relations', access_by_perms=( 'accounts.can_view_extra_assetrelationsreport' ), ), ralph_item( title=_('Licence - relations'), url='licence-relations', access_by_perms=( 'accounts.can_view_extra_licencerelationsreport' ), ), ralph_item( title=_('Assets - supports'), url='assets-supports', access_by_perms=( 'accounts.can_view_extra_assetsupportsreport' ), ), ralph_item( title=_('Failures'), url='failures-report', access_by_perms=( 'accounts.can_view_extra_failurereport' ), ), ] ), ralph_item( title=_('Operations'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Changes'), 'operations', 'Change'), section(_('Problems'), 'operations', 'Problem'), section(_('Incidents'), 'operations', 'Incident'), section(_('Failures'), 'operations', 'Failure'), section(_('All'), 'operations', 'Operation'), section(_('Types'), 'operations', 'OperationType'), section(_('Statuses'), 'operations', 'OperationStatus'), ] ), ralph_item( title=_('Dashboards'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Dashboards'), 'dashboards', 'Dashboard'), section(_('Graphs'), 'dashboards', 'Graph'), ] ), ralph_item( title=_('Settings'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Asset model'), 'assets', 'AssetModel'), section(_('Asset category'), 'assets', 'Category'), section(_('Manufacturer'), 'assets', 'Manufacturer'), section(_('Manufacturer Kind'), 'assets', 'Manufacturerkind'), section(_('Business segment'), 'assets', 'BusinessSegment'), section(_('Profit center'), 'assets', 'ProfitCenter'), section(_('Service'), 'assets', 'Service'), section(_('Environment'), 'assets', 'Environment'), section(_('Budget info'), 'assets', 'BudgetInfo'), section( _('Service Environment'), 'assets', 'ServiceEnvironment' ), section( _('Configuration modules'), 'assets', 'ConfigurationModule' ), section( _('Configuration classes'), 'assets', 'ConfigurationClass' ), section(_('Asset holder'), 'assets', 'AssetHolder'), section(_('Users list'), 'accounts', 'RalphUser'), section(_('Groups list'), 'auth', 'Group'), section(_('Regions'), 'accounts', 'Region'), section(_('Access Zones'), 'access_cards', 'AccessZone'), section(_('Transitions'), 'transitions', 'TransitionModel'), section(_('Report template'), 'reports', 'Report'), section(_('Custom fields'), 'custom_fields', 'CustomField'), section(_('Warehouses'), 'back_office', 'warehouse'), section( _('Office Infrastructures'), 'back_office', 'officeinfrastructure' ), ] ) ])
# -*- coding: utf-8 -*- from __future__ import unicode_literals from __future__ import absolute_import from sitetree.utils import tree, item # Be sure you defined `sitetrees` in your module. sitetrees = ( # Define a tree with `tree` function. tree('sitemenus', items=[ item('Vistoria', '#', url_as_pattern=False, children=[ item('Usuarios', '#', url_as_pattern=False, children=[ item('Dashboard', 'account_users_list'), item('Add a book', 'tasksnotifyview'), item('Edit ', 'tasksnotifyview', in_menu=False, in_sitetree=False) ]), item('Postos', '#', url_as_pattern=False, children=[ item('Postos', '#', url_as_pattern=False, children=[ item('Bombas', '#', url_as_pattern=False), item('Tanques', '#', url_as_pattern=False), ]) ]), item('Veiculos', '#', url_as_pattern=False, children=[ item('Veiculos', '#', url_as_pattern=False,), ]), ]) ]), # ... You can define more than one tree for your app. )
# GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with BuilderDB. If not, see <http://www.gnu.org/licenses/>. from sitetree.utils import tree, item sitetrees = ( tree('accounts', items=[ item('Sign Up', 'account_signup', access_guest=True), item('Log In', 'account_login', access_guest=True), item('Password Reset', 'account_reset_password', in_menu=False, in_sitetree=False, children=[ item('Sent', 'account_reset_password_done', in_menu=False, in_sitetree=False), item('Reset', 'account_reset_password_from_key', in_menu=False, in_sitetree=False), # TODO: Fix this so that it works item('Done', 'account_reset_password_from_key_done', in_menu=False, in_sitetree=False), ]), item('{{ user.username }}', 'accounts_index', access_loggedin=True, children=[ item('Change Password', 'account_change_password', access_loggedin=True, in_menu=False), item('Account Inactive', 'account_inactive', access_loggedin=True, in_menu=False, in_sitetree=False), item('Email Addresses', 'account_email', access_loggedin=True, in_menu=False, in_sitetree=False, children=[ item('Confirm', 'account_email_confirm confirmation.key', access_loggedin=True, in_menu=False, in_sitetree=False), ]), ]), item('Log Out', 'account_logout', access_loggedin=True), ]), tree('postman', items=[ item('Messages', '/messages/', url_as_pattern=False, access_guest=False, access_loggedin=True, children=[ item('Compose', 'postman_write', access_guest=False, access_loggedin=True), item('Inbox', 'postman_inbox', access_guest=False, access_loggedin=True), item('Inbox', 'postman_inbox m', access_guest=False, access_loggedin=True, in_menu=False, in_sitetree=False), item('Sent', 'postman_sent', access_guest=False, access_loggedin=True),
""" Site trees defining the menus for the PyCon-Israel site """ from sitetree.utils import tree, item sitetrees = ( # A tree for English will serve as the default for now tree('main', 'main', items=[ item('Home', 'home'), item('About', 'pinax_pages:pages_page "en/about/"'), item('Code of Conduct', 'pinax_pages:pages_page "en/code-of-conduct/"'), item('Venue', 'pinax_pages:pages_page "en/venue/"'), item('Sponsors', '#', children=[ item('Apply to be a Sponsor', 'sponsor_apply'), item('{{ SITE_NAME }} Sponsors', 'sponsor_list'), ]), ]), tree('main_he', title='ראשי', items=[ item('עמוד הבית', 'home'), item('אודות', 'pinax_pages:pages_page "he/about/"'), item('כללי התנהגות', 'pinax_pages:pages_page "he/code-of-conduct/"'), item('מקום', 'pinax_pages:pages_page "he/venue/"'),
""" Site trees defining the menus for the PyCon-Israel site """ from sitetree.utils import tree, item sitetrees = ( # A tree for English will serve as the default for now tree('main', 'main', items=[ item('Home', 'home'), item('Blog', 'pinax_blog:blog'), item('Code of Conduct', 'pinax_pages:pages_page "en/code-of-conduct/"'), item('Venue', 'pinax_pages:pages_page "en/venue/"'), ]), tree('main_he', title='ראשי', items=[ item('עמוד הבית', 'home'), item('בלוג', 'pinax_blog:blog'), item('כללי התנהגות', 'pinax_pages:pages_page "he/code-of-conduct/"'), item('מקום', 'pinax_pages:pages_page "he/venue/"'), ]), # item('Title', 'url', children=[ # item('Book named "{{ book.title }}"', 'books-details', in_menu=False, in_sitetree=False), # item('Add a book', 'books-add'), # item('Edit "{{ book.title }}"', 'books-edit', in_menu=False, in_sitetree=False)
# -*- coding: utf-8 -*- from sitetree.utils import tree, item sitetrees = ( tree('reports', items=[ item('Сформировать отчет', 'reports:index', in_menu=True, in_sitetree=True), ]), )
'placeholder': placeholder}) return context plugin_pool.register_plugin(CMSCategoryEntriesPlugin) from sitetree.sitetreeapp import register_dynamic_trees, compose_dynamic_tree from sitetree.utils import tree, item items_cat = {} entries = Entry.published.all() #@UndefinedVariable for entry in entries: node = item(entry.title, entry.get_absolute_url(), url_as_pattern=False) node.title_ru = entry.title_ru cats = entry.categories.all()[:1] if not cats: continue cat = entry.categories.all()[:1][0].slug if not cat in items_cat: items_cat[cat] = [] items_cat[cat].append(node) for key, value in items_cat.iteritems(): register_dynamic_trees(( compose_dynamic_tree(( tree('dynamic', title='dynamic', items=value), ), target_tree_alias='mainmenu', parent_tree_item_alias=key), ))
tree( 'ralph_admin', items=[ ralph_item( title=_('Data Center'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Hardware'), 'data_center', 'DataCenterAsset'), section(_('Racks'), 'data_center', 'Rack'), section(_('Cloud projects'), 'virtual', 'CloudProject'), section(_('Cloud hosts'), 'virtual', 'CloudHost'), section(_('Data Centers'), 'data_center', 'DataCenter'), section(_('Databases'), 'data_center', 'Database'), section(_('Disk Shares'), 'data_center', 'DiskShare'), section(_('Accessories'), 'data_center', 'Accessory'), section(_('Rack Accessories'), 'data_center', 'RackAccessory'), section(_('Server Rooms'), 'data_center', 'ServerRoom'), section(_('VIPs'), 'data_center', 'VIP'), section(_('Virtual Servers'), 'virtual', 'VirtualServer'), section(_('IP Addresses'), 'data_center', 'ipaddress'), section(_('Clusters'), 'data_center', 'cluster'), ], ), ralph_item( title=_('DC Visualization'), url='dc_view', access_by_perms='accounts.can_view_extra_datacenterview'), ralph_item(title=_('Back Office'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Hardware'), 'back_office', 'backofficeasset'), section(_('Warehouses'), 'back_office', 'warehouse'), section(_('Office Infrastructures'), 'back_office', 'officeinfrastructure'), ]), ralph_item(title=_('Licenses'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Licences'), 'licences', 'Licence'), section(_('Types'), 'licences', 'LicenceType'), section(_('Software'), 'licences', 'Software'), ]), ralph_item(title=_('Domains'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Domains'), 'domains', 'Domain'), section(_('Contracts'), 'domains', 'DomainContract'), section(_('Registrants'), 'domains', 'DomainRegistrant'), section(_('Owners'), 'accounts', 'RalphUser'), ]), ralph_item(title=_('Supports'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Supports'), 'supports', 'Support'), section(_('Types'), 'supports', 'SupportType'), ]), ralph_item( title=_('Reports'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ ralph_item( title=_('Category model'), url='category_model_report', access_by_perms=( 'accounts.can_view_extra_categorymodelreport'), ), ralph_item( title=_('Category model status'), url='category_model__status_report', access_by_perms=( 'accounts.can_view_extra_categorymodelstatusreport' ), ), ralph_item( title=_('Manufacturer category model'), url='manufactured_category_model_report', access_by_perms=( 'accounts.' 'can_view_extra_manufacturercategorymodelreport'), ), ralph_item( title=_('Status model'), url='status_model_report', access_by_perms=( 'accounts.can_view_extra_statusmodelreport'), ), ralph_item( title=_('Asset - relations'), url='asset-relations', access_by_perms=( 'accounts.can_view_extra_assetrelationsreport'), ), ralph_item( title=_('Licence - relations'), url='licence-relations', access_by_perms=( 'accounts.can_view_extra_licencerelationsreport'), ), ralph_item( title=_('Failures'), url='failures-report', access_by_perms=( 'accounts.can_view_extra_failurereport'), ), ]), ralph_item(title=_('Operations'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Changes'), 'operations', 'Change'), section(_('Problems'), 'operations', 'Problem'), section(_('Incidents'), 'operations', 'Incident'), section(_('Failures'), 'operations', 'Failure'), section(_('All'), 'operations', 'Operation'), section(_('Types'), 'operations', 'OperationType'), ]), ralph_item(title=_('Dashboards'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Dashboards'), 'dashboards', 'Dashboard'), section(_('Graphs'), 'dashboards', 'Graph'), ]), ralph_item(title=_('Settings'), url='#', url_as_pattern=False, perms_mode_all=False, children=[ section(_('Asset model'), 'assets', 'AssetModel'), section(_('Asset category'), 'assets', 'Category'), section(_('Manufacturer'), 'assets', 'Manufacturer'), section(_('Business segment'), 'assets', 'BusinessSegment'), section(_('Profit center'), 'assets', 'ProfitCenter'), section(_('Service'), 'assets', 'Service'), section(_('Environment'), 'assets', 'Environment'), section(_('Budget info'), 'assets', 'BudgetInfo'), section(_('Service Environment'), 'assets', 'ServiceEnvironment'), section(_('Asset holder'), 'assets', 'AssetHolder'), section(_('Users list'), 'accounts', 'RalphUser'), section(_('Groups list'), 'auth', 'Group'), section(_('Regions'), 'accounts', 'Region'), section(_('Transitions'), 'transitions', 'TransitionModel'), section(_('Report template'), 'reports', 'Report'), ]) ])
tree( 'maintree', 'Hlavní menu', items=[ item('Zapsat jízdu!', 'switch_rides_view', title_en='Take a Ride!'), item( 'Profil', 'edit_profile_detailed', title_en='Profile', children=[ item('Změnit osobní údaje', 'edit_profile_detailed', title_en='Change Personal Details'), item('Změnit tým', 'zmenit_tym', title_en='Change Team'), item('Triko', 'zmenit_triko', title_en='Change T-Shirts'), item('Platba', 'typ_platby', title_en='Payment'), item('Aplikace', 'application', title_en='Applications'), ], ), item('Tým', 'team_members', title_en='Team'), item( 'Výsledky', None, title_en='Results', children=[ item('Pravidelnostní soutěže', 'competitions', title_en='Regularity Competitions'), item('Výkonnostní soutěže', 'length_competitions', title_en='Performance Competitions'), item('Ostatní soutěže', 'questionnaire_competitions', title_en='Other Competitions'), item('Minulé ročníky', 'diplomas', title_en='Previous Years'), ], ), ], ),
tree('dictionaries', items=[ item('Справочники', 'dictionaries:main', children=[ item('Категории', 'dictionaries:categories-list', in_menu=False, in_sitetree=True, children=[ item('Добавить', 'dictionaries:categories-add'), item('{{ category }}', 'dictionaries:categories-detail category.slug', in_menu=False, in_sitetree=False, children=[ item( 'Редактировать', 'dictionaries:categories-edit category.slug', in_menu=False, in_sitetree=False ), item( 'Удалить', 'dictionaries:categories-delete category.slug', in_menu=False, in_sitetree=False ), item('Типы справочников', 'dictionaries:types-list category.slug', in_menu=True, in_sitetree=True, children=[ item('Добавить', 'dictionaries:types-add category.slug', in_menu=False, in_sitetree=False), item('{{ type.name }}', 'dictionaries:types-detail category.slug type.slug', in_menu=False, in_sitetree=False, children=[ item('Редактировать', 'dictionaries:types-edit category.slug type.slug', in_menu=False, in_sitetree=False), item('Удалить', 'dictionaries:types-delete category.slug type.slug', in_menu=False, in_sitetree=False), item('Записи', 'dictionaries:items-list category.slug type.slug', in_menu=False, in_sitetree=False, children=[ item('Добавить', 'dictionaries:items-add category.slug type.slug', in_menu=False, in_sitetree=False), item('{{ dict_item.name }}', 'dictionaries:items-detail ' 'category.slug type.slug dict_item.id', in_menu=False, in_sitetree=False, children=[ item( 'Редактировать', 'dictionaries:items-edit ' 'category.slug type.slug dict_item.id', in_menu=False, in_sitetree=False ), item( 'Удалить', 'dictionaries:items-delete ' 'category.slug type.slug dict_item.id', in_menu=False, in_sitetree=False ), ]) ]), ]) ]), ]), ]), ]), ]),
# -*- coding: utf-8 -*- from __future__ import unicode_literals from sitetree.utils import tree, item dynamic_sitetrees = ( tree('trabalhos', items=[ item('Gerenciamento de ciclo', 'ciclo:gerenciar', children=[ item('Distribuir trabalhos', 'ciclo:distribuir_trabalhos', children=[ item('Distribuir trabalhos para {{ agente.nome }}', 'ciclo:distribuir_trabalhos agente.id'), ], in_menu=False, in_sitetree=False), item('Iniciar ciclo', 'ciclo:iniciar', in_menu=False, in_sitetree=False), item('Editar Ciclo', 'ciclo:alterar_ciclo ciclo.id', in_menu=False, in_sitetree=False), item('Encerrar ciclo', 'ciclo:encerrar', in_menu=False, in_sitetree=False), item('Imoveis Visitados', 'ciclo:imoveis_visitados agente.id', in_menu=False, in_sitetree=False), ], access_by_perms='trabalhos.change_ciclo') ]), )
from sitetree.utils import tree, item sitetrees = ( tree('books', items=[ item('Books', '/books/', url_as_pattern=False, children=[ item('{{ book.title }}', 'books-details', in_menu=False, in_sitetree=False), item('Add a book', 'books-add'), ]) ]), tree('other', items=[ item('Item', '/item/', url_as_pattern=False, access_guest=False) ]), )
# -*- coding: utf-8 -*- from __future__ import unicode_literals from sitetree.utils import tree, item dynamic_sitetrees = ( tree('agentes', items=[ item('Usuários', 'agentes:agente:listar', children=[ item('{{ agente.nome }}', 'agentes:agente:detalhes agente.id', children=[ item('Alterar Usuario', 'agentes:agente:editar agente.id'), item('Excluir Usuario', 'agentes:agente:excluir agente.id'), item('Redefinir Senha', 'agentes:agente:definir_senha agente.id'), ], in_menu=False, in_sitetree=False, access_by_perms='agentes.change_agente'), item('Adicionar usuario', 'agentes:agente:adicionar', in_menu=False, in_sitetree=False, access_by_perms='agentes.change_agente'), ], access_by_perms='agentes.change_agente'), ]), )
from sitetree.utils import tree, item sitetrees = ( tree('builders', items=[ item('Builders', 'builder.list', children=[ item('Search', 'builder.search', in_menu=False, in_sitetree=False), item('{{ builder.name }}', 'builder.detail builder.slug', in_menu=False, in_sitetree=False, children=[ item('Reviews', 'review.list builder.slug', in_menu=False, in_sitetree=False, children=[ item('{{ review.costume_name }} by {{ builder.name }}', 'review.detail builder.slug review.slug', in_menu=False, in_sitetree=False, children=[ item('Photo #{{ photo.pk }}', 'photo.detail builder.slug review.slug photo.pk', in_menu=False, in_sitetree=False, children=[ item('Delete', 'photo.delete builder.slug review.slug photo.pk', in_menu=False, in_sitetree=False), ]), item('Edit', 'review.edit builder.slug review.slug', in_menu=False, in_sitetree=False, children=[ item('New Photo', 'photo.create builder.slug review.slug', in_menu=False, in_sitetree=False), ]), item('Delete', 'review.delete builder.slug review.slug', in_menu=False, in_sitetree=False), ]), ]), item('Edit', 'builder.edit builder.slug', in_menu=False, in_sitetree=False), item('Delete', 'builder.delete builder.slug', in_menu=False, in_sitetree=False), item('New Review', 'review.create builder.slug', in_menu=False, in_sitetree=False), ]), ]) ]), )
tree('main_en', items=[ # Then define items and their children with `item` function. item('Home', '/', access_loggedin=False, access_guest=True, url_as_pattern=False, hint='home'), item('Home', '/scrumboard/dashboard', access_loggedin=True, access_guest=False, url_as_pattern=False, hint='home'), # set alternative home for logged in users item('Wishlist', '', access_loggedin=True, url_as_pattern=False, hint='shop', children=[ item('List Wishes', 'wishlist:wish-list', access_loggedin=True, in_menu=True, in_sitetree=True, hint='list'), item('Add Wishes', 'wishlist:wish-new', access_loggedin=True, in_menu=True, in_sitetree=True, hint='plus'), item('Edit Wish"{{ wish.name }}"', 'wishlist:wish-edit wish.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='edit'), item('View Wish "{{ wish.name }}', 'wishlist:wish-detail wish.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='search'), item('Delete Wish "{{ wish.name }}"', 'wishlist:wish-delete wish.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='trash'), ]), item('Scrum', '', access_loggedin=True, url_as_pattern=False, hint='windows', children=[ item('List Sprints', 'scrumboard:sprint-list', access_loggedin=True, in_menu=True, in_sitetree=True, hint='list'), item('Add Sprint', 'scrumboard:sprint-new',access_loggedin=True, in_menu=True, in_sitetree=True, hint='plus'), item('Edit Sprint "{{ sprint.name }}"', 'scrumboard:sprint-edit sprint.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='edit'), item('View Sprint "{{ sprint.name }}"', 'scrumboard:sprint-detail sprint.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='search'), item('Delete Sprint "{{ sprint.name }}"', 'scrumboard:sprint-delete sprint.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='trash'), item('List Stories', 'scrumboard:story-list', access_loggedin=True, in_menu=True, in_sitetree=True, hint='list'), item('Add Story', 'scrumboard:story-new', access_loggedin=True, in_menu=True, in_sitetree=True, hint='plus'), item('Edit Story "{{ story.name }}"', 'scrumboard:story-edit story.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='edit'), item('View Story "{{ story.name }}"', 'scrumboard:story-detail story.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='search'), item('Delete Story "{{ story.name }}"', 'scrumboard:story-delete story.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='trash'), item('List Task', 'scrumboard:task-list', access_loggedin=True, in_menu=True, in_sitetree=True, hint='list'), item('Add Task', 'scrumboard:task-new', access_loggedin=True, in_menu=True, in_sitetree=True, hint='plus'), item('Edit Task "{{ task.name }}"', 'scrumboard:task-edit task.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='edit'), item('View Task "{{ task.name }}"', 'scrumboard:task-detail task.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='search'), item('Delete Task "{{ task.name }}"', 'scrumboard:task-delete task.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='trash'), ]), item('Project', '', access_loggedin=True, url_as_pattern=False, hint='settings', children=[ item('List Projects', 'scrumboard:project-list', access_loggedin=True, in_menu=True, in_sitetree=True, hint='list'), item('Add Project', 'scrumboard:project-new', access_loggedin=True, in_menu=True, in_sitetree=True, hint='plus'), item('Edit "{{ project.name }}"', 'scrumboard:project-edit project.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='edit'), item('View Sprint "{{ project.name }}"', 'scrumboard:project-detail project.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='search'), item('Delete Sprint "{{ project.name }}"', 'scrumboard:project-delete project.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='trash'), item('List Statuses', 'scrumboard:status-list', access_loggedin=True, in_menu=True, in_sitetree=True, hint='list'), item('Add Status', 'scrumboard:status-new', access_loggedin=True, in_menu=True, in_sitetree=True, hint='plus'), item('Edit Status "{{ status.name }}"', 'scrumboard:status-edit status.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='edit'), item('View Status "{{ status.name }}"', 'scrumboard:status-detail status.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='search'), item('Delete Status "{{ status.name }}"', 'scrumboard:status-delete status.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='trash'), ]), item('ScrumBoard', '', access_loggedin=True, url_as_pattern=False, hint='grid layout', children=[ item('Dashboard', '/scrumboard/dashboard', access_loggedin=True, access_guest=False, url_as_pattern=False, hint='windows'), # set alternative home for logged in users item('Select Project', 'scrumboard:select-project', access_loggedin=True, in_menu=True, in_sitetree=True, hint='checkmark box'), item('Select Sprint', 'scrumboard:select-sprint', access_loggedin=True, in_menu=True, in_sitetree=True, hint='checkmark box'), ]), item('Help', '/page/help/', url_as_pattern=False, hint='question', children=[ item('Wishlist help', '/page/help-wishlist', url_as_pattern=False, in_menu=True, in_sitetree=True, hint='shop'), item('Scrumboard help', '/page/help-scrumboard', url_as_pattern=False, in_menu=True, in_sitetree=True, hint='windows'), ]), #item('Logout', '/logout?next=/', access_loggedin=True, url_as_pattern=False, hint='sign out'), item('Login', '/login?next=/', access_guest=True, url_as_pattern=False, hint='sign in'), ]),
from sitetree.utils import tree, item sitetrees = (tree('events', items=[ item('Venue', 'event_venue event.slug'), item('Tickets', 'event_tickets event.slug'), item('Call for Proposals', 'event_cfp_form event.slug'), item('Code of Conduct', 'event_coc event.slug'), ]), )
# Version: 1.0 # License: MIT License # from __future__ import unicode_literals from sitetree.utils import tree, item sitetrees = ( tree('main', items=[ item('Home', 'home'), item('News', 'news:list', children=[ item('{{ news.title }}', 'news:detail news.slug', in_menu=False) ]), item('Prices', 'prices:list'), item('About Us', '/pages/about/', url_as_pattern=False, children=[ item('Internet', '/pages/about/', url_as_pattern=False), item('Cable TV', '/pages/about/tv/', url_as_pattern=False), item('Connect', '/pages/connect/', url_as_pattern=False), item('Balance recharge', '/pages/pay/', url_as_pattern=False), ]), item('Contacts', '/pages/contacts/', url_as_pattern=False), item('My Account', 'https://cp.visp.com.ua:9443/', url_as_pattern=False), ]), tree('pages', items=[ item('Internet', '/pages/about/', url_as_pattern=False), item('Cable TV', '/pages/about/tv/', url_as_pattern=False), item('Connect', '/pages/connect/', url_as_pattern=False), item('Balance recharge', '/pages/pay/', url_as_pattern=False), ]),
tree( 'website', items=[ # Then define items and their children with `item` function. item( 'Главная', '/', url_as_pattern=False, children=[ item('Авторизация', '/auth/signin/', url_as_pattern=False), item('Регистрация', '/register/', url_as_pattern=False), item('Администрирование', '/admin_panel/', url_as_pattern=False, children=[ item('{{ object.username }}', 'admin_panel:user_detail object.id', url_as_pattern=True, children=[ item('Обновление', 'admin_panel:user_update object.id', url_as_pattern=True), item('Удалить', 'admin_panel:user_delete object.id', url_as_pattern=True) ]), item('Создание пользователя', 'admin_panel:user_create', url_as_pattern=True) ]) ]) ]),
# / \ _ __ ___| |__ ___ _ __ _ _ # / /\ \ | '__/ __| '_ \ / _ \ '__| | | | # / ____ \| | | (__| | | | __/ | | |_| | # /_/ \_\_| \___|_| |_|\___|_| \__, | # __/ | # |___/ # Copyright (C) 2017 Anand Tiwari # # Email: [email protected] # Twitter: @anandtiwarics # # This file is part of ArcherySec Project. from sitetree.utils import tree, item sitetrees = (tree('topnavbar', items=[ item('API Docs', 'https://developers.archerysec.com', url_as_pattern=False, hint="icon-link"), item('Settings', 'webscanners:setting', access_loggedin=True, hint="icon-cog"), item('Log Out', 'webscanners:logout', access_loggedin=True, hint="icon-share-alt") ]), )
selector_kw = {k: 0 for k in ALL_SELECTORS_ORDERS_PARAMETER+['category']} # 获取产品数量不为0的品类,并按照产品数量排序 parent_categ_list = [c for c in Category.objects.filter(parent__name='产品')] parent_categ_list = [c for c in parent_categ_list if get_product_inv_categ(c.name).count() > 0] parent_categ_list = sorted( parent_categ_list, key=lambda x: get_product_inv_categ(x.name).count(), reverse=True) item_categ = [] for categ in parent_categ_list: invs = get_product_inv_categ(categ.name) if invs.count() == 0: continue brand_id_list = invs.distinct('template__brand').values_list('template__brand', flat=True) selector_kw.update({'category': categ.name}) t = [] #sitetree all brand by zhangxue for b in brand_id_list: selector_kw.update({'brand': b}) t.append(item(Brand.objects.get(id=b).name, reverse('category', kwargs=selector_kw))) selector_kw.update({'brand':0}) item_categ.append(item(categ.name, reverse('category', kwargs=selector_kw), children=t)) sitetrees = ( tree('category', items=item_categ), )
# -*- coding: utf-8 -*- from __future__ import unicode_literals from sitetree.utils import tree, item dynamic_sitetrees = ( tree('relatorios', items=[ item('Relatórios', '#nolink', alias='relatorios', children=[ item('Diário (D1)', 'relatorios:diario'), item('Semanal (D7)', 'relatorios:semanal'), ]) ]), tree('relatorios', items=[ item('Gerar QR-Code', 'relatorios:gerar-qrcode'), ]), )
# -*- coding: utf-8 -*- from sitetree.utils import tree, item sitetrees = ( tree('loader', items=[ item('Загрузка данных', 'loader', in_menu=True, in_sitetree=True), ]), )
# -*- coding: utf-8 -*- from sitetree.utils import tree, item sitetrees = ( tree('main', title='Main Menu', items=[ item('Home', 'home', in_menu=True, in_sitetree=True, url_as_pattern=True, children=[ item('About', 'about', in_menu=True, in_sitetree=True, url_as_pattern=True), item('Contact', 'contact', in_menu=True, in_sitetree=True, url_as_pattern=True), ]), # item('Test', 'test', in_menu=True, in_sitetree=True, url_as_pattern=True, access_loggedin=True), item('Articles', 'articles', in_menu=True, in_sitetree=True, url_as_pattern=True), item('News', 'news', in_menu=True, in_sitetree=True, url_as_pattern=True), # item('Articles', 'articles-listing', children=[ # item('{{ article.title }}', 'articles-details', in_menu=False, in_sitetree=False), # item('Add article', 'article-add', access_by_perms=['main.allow_article_add']), # item('Edit: {{ article.title }}', 'articles-edit', in_menu=False, in_sitetree=False) # ]) ]), )
from sitetree.utils import tree, item # Be sure you defined `sitetrees` in your module. sitetrees = ( # Define a tree with `tree` function. tree('authors', items=[ # Then define items and their children with `item` function. item('Authors', 'shop', children=[ item('Author named "{{ author.name }}"', 'shop-author', in_menu=True, in_sitetree=True), ]) ]), # ... You can define more than one tree for your app. )
def build_sitetree(): """Строит древо сайта, исходя из доступных областей сайта. :return: """ # Потакаем поведению Django 1.7 при загрузке приложений. from sitetree.sitetreeapp import register_dynamic_trees, compose_dynamic_tree register_dynamic_trees(compose_dynamic_tree( (tree('main', 'Основное дерево', ( item( 'Про Python', '/', alias='topmenu', url_as_pattern=False, description= 'Материалы по языку программирования Python. Книги, видео, сообщества ' 'и многое другое.', children=(realm.get_sitetree_items() for realm in get_realms().values())), item('Вход', 'login', access_guest=True, in_menu=False, in_breadcrumbs=False), item('Личное меню', '#', alias='personal', url_as_pattern=False, access_loggedin=True, in_menu=False, in_sitetree=False, children=( item('Профиль', 'users:details request.user.id', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), item('Настройки', 'users:edit request.user.id', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), item('Выход', 'logout', access_loggedin=True, in_breadcrumbs=False, in_sitetree=False), )), )), tree('about', 'О проекте', ( item('Что такое Python', '/promo/', description= 'Краткие сведения о языке программирования Python.', url_as_pattern=False), item('О проекте', '/about/', description='Информация о проекте pythonz.net.', url_as_pattern=False), item('Карта сайта', '/sitemap/', description='Список разделов проекта pythonz.net.', url_as_pattern=False), item('Поиск по сайту', '/search/site/', url_as_pattern=False), item('Результаты поиска «{{ search_term }}»', '/search/', url_as_pattern=False, in_menu=False, in_sitetree=False), )))), reset_cache=True)
tree( 'accounts', items=[ item('Sign Up', 'account_signup', access_guest=True), item('Log In', 'account_login', access_guest=True), item( 'Password Reset', 'account_reset_password', in_menu=False, in_sitetree=False, children=[ item('Sent', 'account_reset_password_done', in_menu=False, in_sitetree=False), item('Reset', 'account_reset_password_from_key', in_menu=False, in_sitetree=False), # TODO: Fix this so that it works item('Done', 'account_reset_password_from_key_done', in_menu=False, in_sitetree=False), ]), item('{{ user.username }}', 'accounts_index', access_loggedin=True, children=[ item('Change Password', 'account_change_password', access_loggedin=True, in_menu=False), item('Account Inactive', 'account_inactive', access_loggedin=True, in_menu=False, in_sitetree=False), item('Email Addresses', 'account_email', access_loggedin=True, in_menu=False, in_sitetree=False, children=[ item('Confirm', 'account_email_confirm confirmation.key', access_loggedin=True, in_menu=False, in_sitetree=False), ]), ]), item('Log Out', 'account_logout', access_loggedin=True), ]),
tree( "maintree", "Hlavní menu", items=[ item("Zapsat jízdu!", "switch_rides_view", title_en="Take a Ride!"), item( "Profil", "edit_profile_detailed", title_en="Profile", children=[ item( "Změnit osobní údaje", "edit_profile_detailed", title_en="Change Personal Details", ), item("Změnit tým", "zmenit_tym", title_en="Change Team"), item("Triko", "zmenit_triko", title_en="Change T-Shirts"), item("Platba", "typ_platby", title_en="Payment"), item("Aplikace", "application", title_en="Applications"), ], ), item("Tým", "team_members", title_en="Team"), item("Mapa", "map", title_en="Map"), item( "Výsledky", None, title_en="Results", children=[ item( "Pravidelnostní soutěže", "competitions", title_en="Regularity Competitions", ), item( "Výkonnostní soutěže", "length_competitions", title_en="Performance Competitions", ), item( "Ostatní soutěže", "questionnaire_competitions", title_en="Other Competitions", ), item("Minulé ročníky", "diplomas", title_en="Previous Years"), ], ), item( "Data report", None, title_en="Data report", children=[ item( "Jednotlivec", "datareport individual", title_en="Individual", ), item( "Organizace", "datareport organization", title_en="Organization", ), item( "Město", "datareport city", title_en="City", ), ], ), ], ),
tree('imoveis', items=[ item('Imóveis e Localidades', '#nolink', alias='cadastros', children=[ item('Bairros, Quadras e Imóveis', 'imoveis:bairro:listar', children=[ item('Bairro {{ bairro.nome }}', 'imoveis:bairro:detalhes bairro.id', children=[ item('Alterar Bairro', 'imoveis:bairro:editar bairro.id', in_menu=False, in_sitetree=False), item('Excluir Bairro', 'imoveis:bairro:excluir bairro.id', in_menu=False, in_sitetree=False), item('Quadra {{ quadra.numero }}', 'imoveis:quadra:detalhes quadra.id', children=[ item('Editar Quadra', 'imoveis:quadra:editar quadra.id'), item('Excluir Quadra', 'imoveis:quadra:excluir quadra.id')], in_menu=False, in_sitetree=False), item('Quadra {{ quadra.numero }}', 'imoveis:quadra:detalhes quadra.id lado.numero', children=[ item('{{ imovel }}', 'imoveis:imovel:detalhes imovel.id', children=[ item('Editar Imóvel', 'imoveis:imovel:editar imovel.id'), item('Excluir Imóvel', 'imoveis:imovel:excluir imovel.id'), ]), item('Adicionar Imóvel', 'imoveis:imovel:adicionar lado.quadra.id lado.numero'), ]), item('Adicionar Quadra', 'imoveis:quadra:adicionar bairro.id'), ], in_menu=False, in_sitetree=False), item('Novo Bairro', 'imoveis:bairro:adicionar'), ], access_by_perms='imoveis.change_bairro'), item('Logradouro', 'imoveis:logradouro:listar', children=[ item('Detalhes do Logradouro', 'imoveis:logradouro:detalhes logradouro.id', in_menu=False, in_sitetree=False), item('Novo Logradouro', 'imoveis:logradouro:adicionar'), item('Alterar Logradouro', 'imoveis:logradouro:editar logradouro.id', in_menu=False, in_sitetree=False), item('Excluir Bairro', 'imoveis:logradouro:excluir logradouro.id', in_menu=False, in_sitetree=False) ], access_by_perms='imoveis.change_logradouro'), item('Município', 'imoveis:municipio:listar', children=[ item('Detalhes do Município', 'imoveis:municipio:detalhes municipio.id', in_menu=False, in_sitetree=False), item('Novo Município', 'imoveis:municipio:adicionar', access_by_perms='imoveis.add_municipio'), item('Alterar Município', 'imoveis:municipio:editar municipio.id', in_menu=False, in_sitetree=False), item('Excluir Município', 'imoveis:municipio:excluir municipio.id', in_menu=False, in_sitetree=False) ], access_by_perms='imoveis.change_municipio'), item('UF', 'imoveis:uf:listar', children=[ item('Detalhes do UF', 'imoveis:uf:detalhes uf.id', in_menu=False, in_sitetree=False), item('Novo UF', 'imoveis:uf:adicionar'), item('Alterar UF', 'imoveis:uf:editar uf.id', in_menu=False, in_sitetree=False), item('Excluir UF', 'imoveis:uf:excluir uf.id', in_menu=False, in_sitetree=False) ], access_by_perms='imoveis.change_uf') ]) ]),
from sitetree.utils import tree, item # Be sure you defined `sitetrees` in your module. sitetrees = ( # Define a tree with `tree` function. tree('produtos', items=[ # Then define items and their children with `item` function. item('Categoria', 'categoria') ]), # ... You can define more than one tree for your app. )
tree( 'main_en', items=[ item('Home', '/', url_as_pattern=False, hint='home'), item( 'Developers', '/developers/', url_as_pattern=False, hint='stack overflow', children=[ item( '{{ developer.user.first_name }} {{ developer.user.last_name }}', 'developers:developer-detail developer.slug', access_loggedin=True, in_menu=False, in_sitetree=False), item('Add project', 'developers:project-new', access_loggedin=True, in_menu=False, in_sitetree=False, hint='add'), item('Edit project', 'developers:project-update project.id', access_loggedin=True, in_menu=False, in_sitetree=False, hint='pencil'), ]), item('About', '/page/about/', url_as_pattern=False, hint='question', children=[ item('Info for developers', '/page/info-for-developers', url_as_pattern=False, in_menu=True, in_sitetree=True, hint='student'), item('Info for recruiters', '/page/info-for-recruiters', url_as_pattern=False, in_menu=True, in_sitetree=True, hint='spy'), ]), item('Login', '/login?next=/', access_guest=True, url_as_pattern=False, hint='sign in'), ]),