当前位置: 首页>>代码示例>>Python>>正文


Python menu_pool.get_nodes函数代码示例

本文整理汇总了Python中menus.menu_pool.menu_pool.get_nodes函数的典型用法代码示例。如果您正苦于以下问题:Python get_nodes函数的具体用法?Python get_nodes怎么用?Python get_nodes使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了get_nodes函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_menu_nodes

    def test_menu_nodes(self):
        """
        Tests if all categories are present in the menu
        """
        posts = self.get_posts()
        pages = self.get_pages()
        self.reload_urlconf()

        for lang in ('en', 'it'):
            with smart_override(lang):
                request = self.get_page_request(pages[1], self.user, pages[1].get_absolute_url(lang))
                nodes = menu_pool.get_nodes(request)
                nodes_url = set([node.url for node in nodes])
                cats_url = set([cat.get_absolute_url() for cat in self.cats if cat.has_translation(lang)])
                self.assertTrue(cats_url.issubset(nodes_url))

        cache.clear()
        posts[0].categories.clear()
        for lang in ('en', 'it'):
            with smart_override(lang):
                request = self.get_page_request(pages[1], self.user, pages[1].get_absolute_url(lang))
                nodes = menu_pool.get_nodes(request)
                nodes_url = set([node.url for node in nodes])
                self.assertFalse(posts[0].get_absolute_url(lang) in nodes_url)
                self.assertTrue(posts[1].get_absolute_url(lang) in nodes_url)
开发者ID:Darex1991,项目名称:djangocms-blog,代码行数:25,代码来源:test_menu.py

示例2: test_menu_nodes

 def test_menu_nodes(self):
     """
     Tests if all categories are present in the menu
     """
     for lang in ('en', 'it'):
         request = self.get_page_request(None, self.user,
                                         r'/%s/blog/' % lang, edit=False)
         activate(lang)
         nodes = menu_pool.get_nodes(request, namespace='BlogCategoryMenu')
         nodes_copy = copy.deepcopy(nodes)
         for cat in self.cats:
             if not cat.has_translation(lang):
                 continue
             with switch_language(cat, lang):
                 # find in node list
                 found = None
                 for node in nodes_copy:
                     if node.url == cat.get_absolute_url():
                         found = node
                         break
                 self.assertIsNotNone(found)
                 nodes_copy.remove(found)
                 self.assertEqual(node.id, cat.id)
                 self.assertEqual(node.title, cat.name)
         # check that all categories were found in menu
         self.assertEqual(len(nodes_copy), 0)
开发者ID:rmoorman,项目名称:djangocms-blog,代码行数:26,代码来源:test_menu.py

示例3: show_sub_menu

def show_sub_menu(context, levels=100, template="menu/sub_menu.html"):
    """
    show the sub menu of the current nav-node.
    -levels: how many levels deep
    -temlplate: template used to render the navigation
    """
    
    try:
        # If there's an exception (500), default context_processors may not be called.
        request = context['request']
    except KeyError:
        return {'template': 'menu/empty.html'}
    nodes = menu_pool.get_nodes(request)
    children = []
    for node in nodes:
        if node.selected:
            cut_after(node, levels, [])
            children = node.children
            for child in children:
                child.parent = None
            children = menu_pool.apply_modifiers(children, request, post_cut=True)
    context.update({'children':children,
                    'template':template,
                    'from_level':0,
                    'to_level':0,
                    'extra_inactive':0,
                    'extra_active':0
                    })
    return context        
开发者ID:Natim,项目名称:django-cms-2.0,代码行数:29,代码来源:menu_tags.py

示例4: get_context

    def get_context(self, context, template, name ):
        try:
            request = context['request']
        except KeyError:
            return { 'template': 'menu/empty.html' }
        
        all_nodes = menu_pool.get_nodes(request)
        nodes = menu_pool.get_nodes_by_attribute(all_nodes, 'type', 'family')

        for node in nodes:
            if (node.ancestor or node.selected) and node.attr['type'] == 'family':
                break
            if node.descendant: # We must be at a designer
                node.selected = True # This must be the first family, so select it
                break

        if node.selected: # We're at a family or designer, so automatically select the first stamp
          node.children[0].selected = True

        try:
            context = { 'children': node.children }
        except:
            context = { 'template': template}
            
        return context
开发者ID:samjacoby,项目名称:katran,代码行数:25,代码来源:stamps_tags.py

示例5: test_modifier

 def test_modifier(self):
     """
     Tests if correct category is selected in the menu
     according to context (view object)
     """
     post1, post2 = self.get_posts()
     tests = (
         # view class, view kwarg, view object, category
         (PostDetailView, 'slug', post1, post1.categories.first()),
         (CategoryEntriesView, 'category', self.cats[2], self.cats[2])
     )
     for view_cls, kwarg, obj, cat in tests:
         request = self.get_page_request(None, self.user, r'/en/blog/', edit=False)
         activate('en')
         with switch_language(obj, 'en'):
             view_obj = view_cls()
             view_obj.request = request
             view_obj.kwargs = {kwarg: obj.slug}
             view_obj.get(request)
             # check if selected menu node points to cat
             nodes = menu_pool.get_nodes(request, namespace='BlogCategoryMenu')
             found = False
             for node in nodes:
                 if node.selected:
                     self.assertEqual(node.url, cat.get_absolute_url())
                     found = True
                     break
             self.assertTrue(found)
开发者ID:rmoorman,项目名称:djangocms-blog,代码行数:28,代码来源:test_menu.py

示例6: render

		def render(self, context, instance, placeholder):

				try:
						# If there's an exception (500), default context_processors may not be called.
						request = context['request']
				except KeyError:
						return "There is no	`request` object in the context."

				root_page = instance.root
				root_page_url = root_page.get_absolute_url()
				from_level = instance.start_level
				to_level = instance.depth

				nodes = menu_pool.get_nodes(request)

				children = list()
				root_node = None

				# Find the root node
				for node in nodes:
						if not root_node and node.url == root_page_url:
								root_node = node

				if root_node:
						if instance.include_root :
								children += (root_node, )
						else:
								children += root_node.children

				context.update({
						'MenuItems' : children,
				})
				return context
开发者ID:nephila,项目名称:cmsplugin-embedded-menu,代码行数:33,代码来源:cms_plugins.py

示例7: get_context

    def get_context(self, context, **kwargs):

        menu_name = kwargs.pop('menu_name')

        context.update({'children': [],
                        'template': kwargs.get('template'),
                        'from_level': kwargs.get('from_level'),
                        'to_level': kwargs.get('to_level'),
                        'extra_inactive': kwargs.get('extra_inactive'),
                        'extra_active': kwargs.get('extra_active'),
                        'namespace': kwargs.get('namespace')
                        })

        try:
            named_menu = CMSNamedMenu.objects.get(name__iexact=menu_name).pages
        except ObjectDoesNotExist:
            logging.warn("Named CMS Menu %s not found" % menu_name)
            return context

        nodes = menu_pool.get_nodes(context['request'], kwargs['namespace'], kwargs['root_id'])

        context.update({
            'children': self.arrange_nodes(nodes, named_menu, namespace=kwargs['namespace'])
        })

        return context
开发者ID:jakob-o,项目名称:django-cms-named-menus,代码行数:26,代码来源:named_cms_menu_tags.py

示例8: test_modifier

    def test_modifier(self):
        """
        Tests if correct category is selected in the menu
        according to context (view object)
        """
        posts = self.get_posts()
        pages = self.get_pages()

        tests = (
            # view class, view kwarg, view object, category
            (PostDetailView, "slug", posts[0], posts[0].categories.first()),
            (CategoryEntriesView, "category", self.cats[2], self.cats[2]),
        )
        for view_cls, kwarg, obj, cat in tests:
            request = self.get_page_request(pages[1], self.user, path=obj.get_absolute_url())
            with smart_override("en"):
                with switch_language(obj, "en"):
                    view_obj = view_cls()
                    view_obj.request = request
                    view_obj.namespace, view_obj.config = get_app_instance(request)
                    view_obj.app_config = self.app_config_1
                    view_obj.kwargs = {kwarg: obj.slug}
                    view_obj.get(request)
                    # check if selected menu node points to cat
                    nodes = menu_pool.get_nodes(request, namespace="BlogCategoryMenu")
                    found = False
                    for node in nodes:
                        if node.selected:
                            self.assertEqual(node.url, obj.get_absolute_url())
                            found = True
                            break
                    self.assertTrue(found)
开发者ID:danra,项目名称:djangocms-blog,代码行数:32,代码来源:test_menu.py

示例9: test_public_menu_anonymous_user

 def test_public_menu_anonymous_user(self):
     """
     Anonymous user should only see the pages in the rendered menu
     that have no permissions assigned,directly or indirectly
     """
     self._setup_user_groups()
     all_pages = self._setup_tree_pages()
     self._setup_view_restrictions()
     granted = ['page_a',
         'page_c',
         'page_c_a',
         'page_c_b',
         'page_d_a',
         'page_d_b',
         'page_d_c',
         'page_d_d'
     ]
     self.assertGrantedVisibility(all_pages, granted)
     urls = self.get_url_dict(all_pages)
     user = AnonymousUser()
     request = self.get_request(user, urls['/en/'])
     nodes = menu_pool.get_nodes(request)
     self.assertEqual(len(nodes), 4)
     self.assertInMenu(urls["/en/"], user)
     self.assertInMenu(urls["/en/page_c/"], user)
     self.assertInMenu(urls["/en/page_c/page_c_a/"], user)
     self.assertInMenu(urls["/en/page_c/page_c_b/"], user)
     self.assertViewNotAllowed(urls["/en/page_b/"], user)
     self.assertNotInMenu(urls["/en/page_b/"], user)
     self.assertViewNotAllowed(urls["/en/page_d/"], user)
     self.assertNotInMenu(urls["/en/page_d/"], user)
开发者ID:AllenYang0308,项目名称:django-cms,代码行数:31,代码来源:menu_page_viewperm.py

示例10: kipp_sub_menu

def kipp_sub_menu(context, template="menu/sub_menu.html"):
    try:
        # If there's an exception (500), default context_processors may not be called.
        request = context['request']
    except KeyError:
        return {'template': 'menu/empty.html'}
    nodes = menu_pool.get_nodes(request)
    parent_node = None
    children = []    
    for node in nodes:
        if (node.level == 1) or (node.get_attribute("reverse_id")=="get-involved"): 
            if (node.ancestor) or (node.selected):
                parent_node = node
            if parent_node is None:
                pass
            else:
                children = parent_node.children
    context.update({'children':children,
                    'template':template,
                    'from_level':0,
                    'to_level':0,
                    'extra_inactive':0,
                    'extra_active':0
                    })
    return context 
开发者ID:barbarae,项目名称:kipp,代码行数:25,代码来源:kipp.py

示例11: get_context

 def get_context(self, context, levels, template):
     try:
         # If there's an exception (500), default context_processors may not be called.
         request = context["request"]
     except KeyError:
         return {"template": "menu/empty.html"}
     nodes = menu_pool.get_nodes(request)
     children = []
     for node in nodes:
         if node.selected:
             cut_after(node, levels, [])
             children = node.children
             for child in children:
                 child.parent = None
             children = menu_pool.apply_modifiers(children, request, post_cut=True)
     context.update(
         {
             "children": children,
             "template": template,
             "from_level": 0,
             "to_level": 0,
             "extra_inactive": 0,
             "extra_active": 0,
         }
     )
     return context
开发者ID:kewinwang,项目名称:django-cms,代码行数:26,代码来源:menu_tags.py

示例12: get_queryset

 def get_queryset(self):
     site = get_current_site(self.request)
     if self.action == 'menu':
         return menu_pool.get_nodes(self.request, site_id=site.pk)
     if use_draft(self.request):
         return Page.objects.drafts().on_site(site=site).distinct()
     else:
         return Page.objects.public().on_site(site=site).distinct()
开发者ID:nephila,项目名称:djangocms-rest-view,代码行数:8,代码来源:views.py

示例13: _get_context_internal

    def _get_context_internal(self, context, from_level, to_level, extra_inactive,
                    extra_active, max_count, filter_opt, template, namespace, root_id, next_page):
        trim_children = (filter_opt & FILTER_TRIM_CHILDREN != 0)
        try:
            # If there's an exception (500), default context_processors may not be called.
            request = context['request']
        except KeyError:
            return {'template': 'menu/empty.html'}

        has_root_node = False

        if next_page:
            children = next_page.children
        else: 
            #new menu... get all the data so we can save a lot of queries
            nodes = menu_pool.get_nodes(request, namespace, root_id)
            if root_id: # find the root id and cut the nodes
                id_nodes = menu_pool.get_nodes_by_attribute(nodes, "reverse_id", root_id)
                if id_nodes:
                    root_node = node = id_nodes[0]
                    has_root_node = True

                    new_nodes = node.children
                    for n in new_nodes:
                        n.parent = None
                    from_level += node.level + 1
                    to_level += node.level + 1
                else:
                    new_nodes = []
                nodes = new_nodes
            children = cut_levels(nodes, from_level, to_level, extra_inactive, extra_active, trim_children)
            children = menu_pool.apply_modifiers(children, request, namespace, root_id, post_cut=True)

        if filter_opt & FILTER_INTER:
            children = [node for node in children if node.is_leaf_node]
        elif filter_opt & FILTER_LEAF:
            children = [node for node in children if not node.is_leaf_node]

        # only return the top ``max_count`` ones if specified
        if max_count != -1:
            children = children[:max_count]

        try:
            context.update({'children':children,
                            'template':template,
                            'from_level':from_level,
                            'to_level':to_level,
                            'extra_inactive':extra_inactive,
                            'extra_active':extra_active,
                            'max_count':max_count,
                            'filter_opt':filter_opt,
                            'namespace':namespace})
            if has_root_node:
                context['root_node'] = root_node

        except:
            context = {"template":template}
        return context
开发者ID:team-xue,项目名称:xue,代码行数:58,代码来源:menu_tags.py

示例14: get_context

 def get_context(self, context, levels, root_level, nephews, template):
     # Django 1.4 doesn't accept 'None' as a tag value and resolve to ''
     # So we need to force it to None again
     if not root_level and root_level != 0:
         root_level = None
     try:
         # If there's an exception (500), default context_processors may not
         # be called.
         request = context['request']
     except KeyError:
         return {'template': 'menu/empty.html'}
     nodes = menu_pool.get_nodes(request)
     children = []
     # adjust root_level so we cut before the specified level, not after
     include_root = False
     if root_level is not None and root_level > 0:
         root_level -= 1
     elif root_level is not None and root_level == 0:
         include_root = True
     for node in nodes:
         if root_level is None:
             if node.selected:
                 # if no root_level specified, set it to the selected nodes
                 # level
                 root_level = node.level
                 # is this the ancestor of current selected node at the root
                 # level?
         is_root_ancestor = (node.ancestor and node.level == root_level)
         # is a node selected on the root_level specified
         root_selected = (node.selected and node.level == root_level)
         if is_root_ancestor or root_selected:
             cut_after(node, levels, [])
             children = node.children
             for child in children:
                 child.parent = None
                 if child.sibling:
                     cut_after(child, nephews, [])
                     # if root_level was 0 we need to give the menu the
                     # entire tree
                 # not just the children
             if include_root:
                 children = menu_pool.apply_modifiers(
                     [node], request, post_cut=True
                 )
             else:
                 children = menu_pool.apply_modifiers(
                     children, request, post_cut=True
                 )
     context.update({
         'children': children,
         'template': template,
         'from_level': 0,
         'to_level': 0,
         'extra_inactive': 0,
         'extra_active': 0
     })
     return context
开发者ID:Ratnam123,项目名称:WFIMS,代码行数:57,代码来源:fix_menu_tags.py

示例15: assertNotInMenu

 def assertNotInMenu(self, page, user):
     request = self.get_request(user, page)
     nodes = menu_pool.get_nodes(request)
     target_url = page.get_absolute_url()
     found_in_menu = False
     for node in nodes:
         if node.get_absolute_url() == target_url:
             found_in_menu = True
             break
     self.assertFalse(found_in_menu)
开发者ID:AllenYang0308,项目名称:django-cms,代码行数:10,代码来源:menu_page_viewperm.py


注:本文中的menus.menu_pool.menu_pool.get_nodes函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。