예제 #1
0
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
    )
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
    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)
예제 #6
0
    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)
예제 #7
0
    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)
예제 #8
0
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()
예제 #9
0
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()
예제 #10
0
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),)
예제 #11
0
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),)
예제 #12
0
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
    )
예제 #13
0
    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)
예제 #14
0
파일: sitetrees.py 프로젝트: eeriks/velo.lv
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),
예제 #15
0
    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)
예제 #16
0
# -*- 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),
        
    ]),
)
예제 #17
0
	
	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.
)
예제 #18
0
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.
)
예제 #19
0
 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'
             ),
         ]
     )
 ])
예제 #20
0
# -*- 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.
)
예제 #21
0
파일: sitetrees.py 프로젝트: Vypo/builderdb
# 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),
예제 #22
0
"""
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/"'),
예제 #23
0
"""
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)
예제 #24
0
파일: sitetrees.py 프로젝트: mitrofun/kids2
# -*- coding: utf-8 -*-
from sitetree.utils import tree, item

sitetrees = (
    tree('reports', items=[
        item('Сформировать отчет', 'reports:index', in_menu=True, in_sitetree=True),
        ]),
)
예제 #25
0
                        '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),
    ))  


    
예제 #26
0
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'),
                   ])
    ])
예제 #27
0
 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'),
             ],
         ),
     ],
 ),
예제 #28
0
파일: sitetrees.py 프로젝트: mitrofun/kids2
    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
                                                            ),
                                                        ])
                                               ]),
                                       ])
                              ]),
                     ]),
            ]),
        ]),
    ]),
예제 #29
0
# -*- 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')
    ]),
)
예제 #30
0
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)
         ]),
)
예제 #31
0
# -*- 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'),
    ]),
)
예제 #32
0
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)
    ]),
)
예제 #33
0
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),
            ]),

        ])
    ]),
)
예제 #34
0
 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'),
 ]),
예제 #35
0
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'),
                  ]), )
예제 #36
0
# 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),
    ]),
예제 #37
0
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)
                     ])
            ])
    ]),
예제 #38
0
#    /  \   _ __ ___| |__   ___ _ __ _   _
#   / /\ \ | '__/ __| '_ \ / _ \ '__| | | |
#  / ____ \| | | (__| | | |  __/ |  | |_| |
# /_/    \_\_|  \___|_| |_|\___|_|   \__, |
#                                     __/ |
#                                    |___/
# 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")
                  ]), )
예제 #39
0
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),
        )

예제 #40
0
# -*- 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'),
    ]),
)
예제 #41
0
파일: sitetrees.py 프로젝트: mitrofun/kids2
# -*- coding: utf-8 -*-
from sitetree.utils import tree, item

sitetrees = (
    tree('loader', items=[
        item('Загрузка данных', 'loader', in_menu=True, in_sitetree=True),
        ]),
)
예제 #42
0
# -*- 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)
        # ])
    ]),
)
예제 #43
0
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.
)
예제 #44
0
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)
예제 #45
0
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),
    ]),
예제 #46
0
 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",
                 ),
             ],
         ),
     ],
 ),
예제 #47
0
    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')
        ])
    ]),
예제 #48
0
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.
)
예제 #49
0
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'),
    ]),