コード例 #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_access_restricted(self):
        # Test that default is False
        i0 = item('root', 'url', access_by_perms=1)
        self.assertEqual(i0.access_restricted, True)

        # True is respected
        i1 = item('root', 'url')
        self.assertEqual(i1.access_restricted, False)
コード例 #3
0
ファイル: tests.py プロジェクト: elpaquete/django-sitetree
    def test_access_restricted(self):
        # Test that default is False
        i0 = item('root', 'url', access_by_perms=1)
        self.assertEqual(i0.access_restricted, True)

        # True is respected
        i1 = item('root', 'url')
        self.assertEqual(i1.access_restricted, False)
コード例 #4
0
ファイル: tests.py プロジェクト: Guest007/django-sitetree
    def test_permission_any(self):
        i1 = item('root', 'url')
        self.assertEqual(i1.access_perm_type, i1.PERM_TYPE_ANY)

        i2 = item('root', 'url', perm_any=True)
        self.assertEqual(i2.access_perm_type, i1.PERM_TYPE_ANY)

        i3 = item('root', 'url', perm_any=False)
        self.assertEqual(i3.access_perm_type, i1.PERM_TYPE_ALL)
コード例 #5
0
    def test_permission_any(self):
        i1 = item('root', 'url')
        self.assertEqual(i1.access_perm_type, i1.PERM_TYPE_ALL)

        i2 = item('root', 'url', perms_mode_all=True)
        self.assertEqual(i2.access_perm_type, i1.PERM_TYPE_ALL)

        i3 = item('root', 'url', perms_mode_all=False)
        self.assertEqual(i3.access_perm_type, i1.PERM_TYPE_ANY)
コード例 #6
0
ファイル: brm2015.py プロジェクト: Ameriks/velo.lv
    def build_menu(self, lang):
        current_date = datetime.date.today()
        child_items = [
            item('Atbalstītāji', 'competition:supporters %i' % self.competition.id),
            item('Starta saraksts', 'competition:participant_list %i' % self.competition.id),
        ]
        self.build_flat_pages(self.competition, child_items, lang)
        if self.competition.map_set.count():
            child_items.append(item('Kartes', 'competition:maps %i' % self.competition.id))

        if self.competition.competition_date <= current_date:
            child_items.append(item('Rezultāti', '/media/results/2015_RM_bernu_rezultati.pdf', url_as_pattern=False))
        return item(str(self.competition), 'competition:competition %i' % self.competition.id, url_as_pattern=True, children=child_items, in_menu=self.competition.is_in_menu)
コード例 #7
0
ファイル: ec2016.py プロジェクト: Ameriks/velo.lv
    def build_menu(self, lang):
        activate(lang)
        current_date = datetime.date.today()
        child_items = [
            item(_('Start List'), 'competition:participant_list %i' % self.competition.id),
            item(_("Maps"), 'competition:maps %i' % self.competition.id),
        ]
        self.build_flat_pages(self.competition, child_items, lang)

        if self.competition.competition_date <= current_date + datetime.timedelta(days=1):
            child_items.append(item(_("Results"), 'competition:result_distance_list %i' % self.competition.id))

        return item(str(self.competition), 'competition:competition %i' % self.competition.id, url_as_pattern=True, children=child_items, in_menu=self.competition.is_in_menu)
コード例 #8
0
ファイル: realms.py プロジェクト: cesaiskra/pythonz
    def get_sitetree_add_item(cls):
        """Возвращает элемент древа сайта, указывающий на страницу добавления объекта.

        :return:
        """
        realm_name, realm_name_plural = cls.get_names()
        return item(cls.txt_form_add, '%s:add' % realm_name_plural, access_loggedin=True)
コード例 #9
0
ファイル: realms.py プロジェクト: cesaiskra/pythonz
    def get_sitetree_edit_item(cls):
        """Возвращает элемент древа сайта, указывающий на страницу редактирования объекта.

        :return:
        """
        realm_name, _tmp = cls.get_names()
        return item(cls.txt_form_edit, '%s %s.id' % (cls.get_edit_urlname(), realm_name), in_menu=False, in_sitetree=False, access_loggedin=True)
コード例 #10
0
    def get_sitetree_items(cls):
        """Возвращает элементы древа сайта.

        :return:
        """
        if cls.sitetree_items is None:
            children = []
            for view_name in cls.allowed_views:
                if view_name != 'edit':
                    items = getattr(cls, 'get_sitetree_%s_item' % view_name)()
                    if not isinstance(items, list):
                        items = [items]
                    children.extend(items)

            cls.sitetree_items = item(
                cls.view_listing_title
                or str(cls.model._meta.verbose_name_plural),
                cls.get_listing_urlname(),
                description=cls.view_listing_description,
                children=children,
            )

            cls.sitetree_items.show_on_top = cls.show_on_top

        return cls.sitetree_items
コード例 #11
0
ファイル: realms.py プロジェクト: gitter-badger/pythonz
    def get_sitetree_tags_item(cls):
        """Возвращает элемент древа сайта, указывающий на страницу разбивки объектов по метке (категории).

        :return:
        """
        return item('Категория «{{ category.title }}»', '%s category.id' % cls.get_tags_urlname(),
                    in_menu=False, in_sitetree=False)
コード例 #12
0
ファイル: realms.py プロジェクト: gitter-badger/pythonz
    def get_sitetree_edit_item(cls):
        """Возвращает элемент древа сайта, указывающий на страницу редактирования объекта.

        :return:
        """
        realm_name, _tmp = cls.get_names()
        return item(cls.txt_form_edit, '%s %s.id' % (cls.get_edit_urlname(), realm_name),
                    in_menu=False, in_sitetree=False, access_loggedin=True)
コード例 #13
0
ファイル: brm2015.py プロジェクト: adamslapins/velo.lv
 def build_manager_menu(self):
     return item(
         unicode(self.competition),
         "#",
         url_as_pattern=False,
         in_menu=self.competition.is_in_menu,
         access_loggedin=True,
     )
コード例 #14
0
 def get_item(urlname, id_attr='id'):
     return item(
         '{{ %s.title }}' % realm_name,
         '%s %s.%s' % (urlname, realm_name,
                       id_attr),  # Например books:details book.id
         children=children,
         in_menu=False,
         in_sitetree=False)
コード例 #15
0
ファイル: realms.py プロジェクト: gitter-badger/pythonz
 def get_item(urlname, id_attr='id'):
     return item(
         '{{ %s.title }}' % realm_name,
         '%s %s.%s' % (urlname, realm_name, id_attr),  # Например books:details book.id
         children=children,
         in_menu=False,
         in_sitetree=False
     )
コード例 #16
0
ファイル: realms.py プロジェクト: waitmap/pythonz
    def get_sitetree_add_item(cls):
        """Возвращает элемент древа сайта, указывающий на страницу добавления объекта.

        :return:
        """
        return item(cls.txt_form_add,
                    cls.get_add_urlname(),
                    access_loggedin=True)
コード例 #17
0
    def get_sitetree_listing_item(cls):
        """Возвращает элемент древа сайта, указывающий на страницу со списком объектов.

        :return:
        """
        return item('Список',
                    cls.get_listing_urlname(),
                    description=cls.view_listing_description,
                    in_menu=False)
コード例 #18
0
        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
コード例 #19
0
ファイル: realms.py プロジェクト: bergsoftplus/pythonz
        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
コード例 #20
0
ファイル: realms.py プロジェクト: incidunt/pythonz
    def get_sitetree_add_item(cls):
        """Возвращает элемент древа сайта, указывающий на страницу добавления объекта.

        :return:
        """
        realm_name, realm_name_plural = cls.get_names()
        return item(cls.txt_form_add,
                    '%s:add' % realm_name_plural,
                    access_loggedin=True)
コード例 #21
0
ファイル: tests.py プロジェクト: robcharlwood/django-sitetree
    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)
コード例 #22
0
ファイル: vb2014.py プロジェクト: martinsv/velo.lv
 def build_manager_menu(self):
     child_items = []
     # for child in self.competition.get_children():
     #     children = []
     #     children.append(item('Dalībnieki', '#', url_as_pattern=False, access_loggedin=True, children=[
     #         item('Pieteikt dalībnieku', 'manager:participant_create %i' % child.id, access_loggedin=True),
     #         item('Dalībnieku saraksts', 'manager:participant_list %i' % child.id, access_loggedin=True),
     #         item('{{ object }}', 'manager:participant %i object.id' % child.id, in_menu=False, access_loggedin=True),
     #     ]))
     return item(unicode(self.competition), 'manager:competition %i' % self.competition.id, children=child_items, in_menu=self.competition.is_in_menu, access_loggedin=True)
コード例 #23
0
ファイル: realms.py プロジェクト: idlesign/pythonz
    def get_sitetree_add_item(cls):
        """Возвращает элемент древа сайта, указывающий на страницу добавления объекта.

        :return:
        """

        tree_item = item(cls.txt_form_add, cls.get_add_urlname(), access_loggedin=True)
        tree_item.show_on_top = True

        return tree_item
コード例 #24
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)
コード例 #25
0
ファイル: brm2015.py プロジェクト: adamslapins/velo.lv
    def build_menu(self):
        current_date = datetime.date.today()
        child_items = [
            item("Atbalstītāji", "competition:supporters %i" % self.competition.id),
            item("Starta saraksts", "competition:participant_list %i" % self.competition.id),
        ]
        self.build_flat_pages(self.competition, child_items)
        if self.competition.map_set.count():
            child_items.append(item("Kartes", "competition:maps %i" % self.competition.id))

        if self.competition.competition_date <= current_date:
            child_items.append(item("Rezultāti", "/media/results/2015_RM_bernu_rezultati.pdf", url_as_pattern=False))
        return item(
            unicode(self.competition),
            "competition:competition %i" % self.competition.id,
            url_as_pattern=True,
            children=child_items,
            in_menu=self.competition.is_in_menu,
        )
コード例 #26
0
ファイル: realms.py プロジェクト: cesaiskra/pythonz
    def get_sitetree_details_item(cls):
        """Возвращает элемент древа сайта, указывающий на страницу с детальной информацией об объекте.

        :return:
        """
        realm_name, realm_name_plural = cls.get_names()
        children = []
        if 'edit' in cls.allowed_views:
            children.append(cls.get_sitetree_edit_item())
        return item('{{ %s.title }}' % realm_name, '%s %s.id' % (cls.get_details_urlname(), realm_name), children=children, in_menu=False, in_sitetree=False)
コード例 #27
0
ファイル: realms.py プロジェクト: bergsoftplus/pythonz
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()
コード例 #28
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()
コード例 #29
0
ファイル: sitetrees.py プロジェクト: adamslapins/velo.lv
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),)
コード例 #30
0
ファイル: realms.py プロジェクト: bergsoftplus/pythonz
def get_sitetree_root_item(children=None):
    """Возвращает корневой элемент динамического древа сайта.

    :param tuple|generator children: Дочерние динамические элементы.

    """
    return item(
        'Про Python', '/', alias='topmenu', url_as_pattern=False,
        description='Сайт про Питон. Различные материалы по языку программирования Python: '
                    'книги, видео, справочник, сообщества, события, обсуждения и многое другое.',
        children=children)
コード例 #31
0
ファイル: realms.py プロジェクト: cesaiskra/pythonz
    def get_sitetree_items(cls):
        """Возвращает элементы древа сайта.

        :return:
        """
        if cls.sitetree_items is None:
            cls.sitetree_items = item(
                str(cls.model._meta.verbose_name_plural), cls.get_listing_urlname(),
                children=[getattr(cls, 'get_sitetree_%s_item' % view_name)() for view_name in cls.allowed_views if view_name != 'edit']
            )
        return cls.sitetree_items
コード例 #32
0
def get_sitetree_root_item(children=None):
    """Возвращает корневой элемент динамического древа сайта.

    :param tuple|generator children: Дочерние динамические элементы.

    """
    return item(
        'Про Python', '/', alias='topmenu', url_as_pattern=False,
        description='Сайт про Питон. Различные материалы по языку программирования Python: '
                    'книги, видео, справочник, сообщества, события, обсуждения и многое другое.',
        children=children)
コード例 #33
0
ファイル: sitetrees.py プロジェクト: Ameriks/velo.lv
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),)
コード例 #34
0
ファイル: ec2016.py プロジェクト: eeriks/velo.lv
    def build_menu(self, lang):
        activate(lang)
        current_date = datetime.date.today()
        child_items = [
            item(_('Start List'),
                 'competition:participant_list %i' % self.competition.id),
            item(_("Maps"), 'competition:maps %i' % self.competition.id),
        ]
        self.build_flat_pages(self.competition, child_items, lang)

        if self.competition.competition_date <= current_date + datetime.timedelta(
                days=1):
            child_items.append(
                item(
                    _("Results"), 'competition:result_distance_list %i' %
                    self.competition.id))

        return item(str(self.competition),
                    'competition:competition %i' % self.competition.id,
                    url_as_pattern=True,
                    children=child_items,
                    in_menu=self.competition.is_in_menu)
コード例 #35
0
ファイル: realms.py プロジェクト: incidunt/pythonz
    def get_sitetree_details_item(cls):
        """Возвращает элемент древа сайта, указывающий на страницу с детальной информацией об объекте.

        :return:
        """
        realm_name, realm_name_plural = cls.get_names()
        children = []
        if 'edit' in cls.allowed_views:
            children.append(cls.get_sitetree_edit_item())
        return item('{{ %s.title }}' % realm_name,
                    '%s %s.id' % (cls.get_details_urlname(), realm_name),
                    children=children,
                    in_menu=False,
                    in_sitetree=False)
コード例 #36
0
ファイル: realms.py プロジェクト: incidunt/pythonz
    def get_sitetree_items(cls):
        """Возвращает элементы древа сайта.

        :return:
        """
        if cls.sitetree_items is None:
            cls.sitetree_items = item(
                str(cls.model._meta.verbose_name_plural),
                cls.get_listing_urlname(),
                children=[
                    getattr(cls, 'get_sitetree_%s_item' % view_name)()
                    for view_name in cls.allowed_views if view_name != 'edit'
                ])
        return cls.sitetree_items
コード例 #37
0
ファイル: vb2014.py プロジェクト: martinsv/velo.lv
    def build_menu(self):
        current_date = datetime.date.today()
        child_items = [
            item('Atbalstītāji', 'competition:supporters %i' % self.competition.id),
            item('Komandas', 'competition:team %i' % self.competition.id, children=[
                item('{{ object }}', 'competition:team %i object.id' % self.competition.id, in_menu=False),
            ]),
            item('Starta saraksts', 'competition:participant_list %i' % self.competition.id),
        ]
        self.build_flat_pages(self.competition, child_items)
        if self.competition.map_set.count():
            child_items.append(item('Kartes', 'competition:maps %i' % self.competition.id))

        if self.competition.competition_date <= current_date:
            child_items.append(item('Rezultāti', 'competition:result_distance_list %i' % self.competition.id))
            child_items.append(item('Komandu rezultāti', 'competition:result_team_by_name %i' % self.competition.id))
        return item(unicode(self.competition), '#', url_as_pattern=False, children=child_items, in_menu=self.competition.is_in_menu)
コード例 #38
0
ファイル: tests.py プロジェクト: Guest007/django-sitetree
    def test_access_restricted(self):
        # Test that default is False
        i0 = item('root', 'url', permissions=1)
        self.assertEqual(i0.access_restricted, False)

        # True is respected
        i1 = item('root', 'url', access_restricted=True, permissions=1)
        self.assertEqual(i1.access_restricted, True)

        # False is respected
        i2 = item('root', 'url', access_restricted=False, permissions=1)
        self.assertEqual(i2.access_restricted, False)

        # None => True w/ permission
        i3 = item('root', 'url', access_restricted=None, permissions=1)
        self.assertEqual(i3.access_restricted, True)

        # None => False w/o permission
        i3 = item('root', 'url', access_restricted=None, permissions=[])
        self.assertEqual(i3.access_restricted, False)

        # Invalid value raises error
        self.assertRaises(
            ValueError, item, 'root', 'url', access_restricted='invalid')
コード例 #39
0
ファイル: realms.py プロジェクト: leotop/pythonz
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/', url_as_pattern=False),
            ))
        )),
        reset_cache=True
    )
コード例 #40
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),
コード例 #41
0
ファイル: tests.py プロジェクト: smaribaldurs/django-sitetree
    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)
コード例 #42
0
ファイル: tests.py プロジェクト: alexhayes/django-sitetree
    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)
コード例 #43
0
ファイル: base_vb.py プロジェクト: eeriks/velo.lv
    def build_menu(self, lang):
        activate(lang)
        current_date = datetime.date.today()
        child_items = [
            item(_("Teams"),
                 'competition:team %i' % self.competition.id,
                 children=[
                     item('{{ object }}',
                          'competition:team %i object.id' %
                          self.competition.id,
                          in_menu=False),
                 ]),
            item(_("Start List"),
                 'competition:participant_list %i' % self.competition.id),
        ]
        self.build_flat_pages(self.competition, child_items, lang)
        if self.competition.map_set.count():
            child_items.append(
                item(_("Maps"), 'competition:maps %i' % self.competition.id))

        if self.competition.competition_date <= current_date + datetime.timedelta(
                days=1):
            child_items.append(
                item(
                    _("Results"), 'competition:result_distance_list %i' %
                    self.competition.id))
            child_items.append(
                item(
                    _("Team Results"), 'competition:result_team_by_name %i' %
                    self.competition.id))
            if self.competition_id == 35:
                child_items.append(
                    item(
                        _("Team Results betw. distances"),
                        'competition:result_team_by_name_btw_distances %i' %
                        self.competition.id))

        return item(str(self.competition),
                    'competition:competition %i' % self.competition.id,
                    url_as_pattern=True,
                    children=child_items,
                    in_menu=self.competition.is_in_menu)
コード例 #44
0
ファイル: base_vb.py プロジェクト: Ameriks/velo.lv
    def build_menu(self, lang):
        activate(lang)
        current_date = datetime.date.today()
        child_items = [
            item(_("Teams"), 'competition:team %i' % self.competition.id, children=[
                item('{{ object }}', 'competition:team %i object.id' % self.competition.id, in_menu=False),
            ]),
            item(_("Start List"), 'competition:participant_list %i' % self.competition.id),
        ]
        self.build_flat_pages(self.competition, child_items, lang)
        if self.competition.map_set.count():
            child_items.append(item(_("Maps"), 'competition:maps %i' % self.competition.id))

        if self.competition.competition_date <= current_date + datetime.timedelta(days=1):
            child_items.append(item(_("Results"), 'competition:result_distance_list %i' % self.competition.id))
            child_items.append(item(_("Team Results"), 'competition:result_team_by_name %i' % self.competition.id))
            if self.competition_id == 35:
                child_items.append(item(_("Team Results betw. distances"), 'competition:result_team_by_name_btw_distances %i' % self.competition.id))

        return item(str(self.competition), 'competition:competition %i' % self.competition.id, url_as_pattern=True, children=child_items, in_menu=self.competition.is_in_menu)
コード例 #45
0
ファイル: realms.py プロジェクト: gitter-badger/pythonz
    def get_sitetree_items(cls):
        """Возвращает элементы древа сайта.

        :return:
        """
        if cls.sitetree_items is None:
            children = []
            for view_name in cls.allowed_views:
                if view_name != 'edit':
                    items = getattr(cls, 'get_sitetree_%s_item' % view_name)()
                    if not isinstance(items, list):
                        items = [items]
                    children.extend(items)

            cls.sitetree_items = item(
                cls.view_listing_title or str(cls.model._meta.verbose_name_plural),
                cls.get_listing_urlname(),
                description=cls.view_listing_description,
                children=children
            )
        return cls.sitetree_items
コード例 #46
0
ファイル: sitetrees.py プロジェクト: wayneburlingame/ralph
def ralph_item(*args, **kwargs):
    kwargs.setdefault('access_loggedin', True)
    # create access_by_perms entries by iterating through all children
    # and extracting app and model name from it
    # permission is created in '<app>.{add|change|view}_<model>' format
    access_by_perms = kwargs.get('access_by_perms', [])
    if isinstance(access_by_perms, (str, int)):
        access_by_perms = [access_by_perms]
    for child in kwargs.get('children', []):
        if hasattr(child, '_model') and hasattr(child, '_app'):
            model = child._model.lower()
            app = child._app.lower()
            access_by_perms.extend([
                '{}.add_{}'.format(app, model),
                '{}.change_{}'.format(app, model),
                '{}.view_{}'.format(app, model),
            ])
        elif hasattr(child, 'permissions'):
            access_by_perms.extend(child.permissions)
    if access_by_perms:
        kwargs['access_by_perms'] = list(set(access_by_perms))
    return item(*args, **kwargs)
コード例 #47
0
ファイル: tests.py プロジェクト: Guest007/django-sitetree
    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)
コード例 #48
0
 def get_sitetree_details_item(cls):
     return item(
         'Категория «{{ category.parent.title }} — {{ category.title }}»',
         'categories:details category.id',
         in_menu=False,
         in_sitetree=False)
コード例 #49
0
 def get_sitetree_details_item(cls):
     return item('{{ user.get_display_name }}',
                 'users:details user.id',
                 in_menu=False,
                 in_sitetree=False)
コード例 #50
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)
        # ])
    ]),
)
コード例 #51
0
ファイル: tests.py プロジェクト: Guest007/django-sitetree
    def test_perm_obj_permissions(self):
        perm = Permission.objects.all()[0]

        i1 = item('root', 'url', permissions=perm)
        self.assertEqual(i1.permissions, [perm])
コード例 #52
0
ファイル: tests.py プロジェクト: Guest007/django-sitetree
    def test_valid_string_permissions(self):
        perm = Permission.objects.all()[0]
        perm_name = "{}.{}".format(perm.content_type.app_label, perm.codename)

        i1 = item('root', 'url', permissions=perm_name)
        self.assertEqual(i1.permissions, [perm])
コード例 #53
0
ファイル: sitetrees.py プロジェクト: mikibouns/django_project
     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)
                      ])
             ])
     ]),
 # ... You can define more than one tree for your app.
コード例 #54
0
from sitetree.utils import item, tree

sitetrees = (
    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",
コード例 #55
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)
コード例 #56
0
ファイル: sitetrees.py プロジェクト: lucamanga/g3w-admin
from sitetree.utils import item
from core.utils.tree import G3Wtree

sitetrees = (
    # Define a tree with `tree` function.
    G3Wtree('filemanager_sidebar_right',
            title='File Manager sidebar right',
            module='filemanager',
            items=[
                item('FILE MANAGER', '#', type_header=True),
                item('Files',
                     'filemanager-home',
                     icon_css_class='fa fa-database',
                     description='Accedi al file manager...'),
            ]),
    G3Wtree('filemanager_sidebar_right_en',
            title='STRESS navabar',
            module='filemanager',
            items=[
                item('FILE MANAGER', '#', type_header=True),
                item('Files',
                     'filemanager-home',
                     icon_css_class='fa fa-database',
                     description='Go to file manager application...'),
            ]),
)
コード例 #57
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.
)
コード例 #58
0
from sitetree.utils import item
from core.utils.tree import G3Wtree

# Be sure you defined `sitetrees` in your module.
sitetrees = (
    # Define a tree with `tree` function.
    G3Wtree(
        'qdjango',
        title='Qdjango',
        module='qdjango',
        items=[
            # Then define items and their children with `item` function.
            item('Aggiungi progetto QGIS {{ group.slug }}',
                 'qdjango-project-add group.slug',
                 in_menu=False,
                 url_as_pattern=True,
                 icon_css_class='fa fa-plus',
                 access_by_perms=['qdjango.add_project']),
            item('Agg. progetto QGIS {{ group.slug }} {{ object.slug }}',
                 'qdjango-project-update group.slug object.slug',
                 in_menu=False,
                 url_as_pattern=True,
                 icon_css_class='fa fa-edit'),
            item(
                'Lista strati progetto QGIS {{ group.slug }} {{ object.slug }}',
                'qdjango-project-layers-list group.slug project_slug',
                in_menu=False,
                url_as_pattern=True,
                icon_css_class='fa fa-edit')
        ]),
    G3Wtree(