Exemplo n.º 1
0
    def test_find_main(self):
        """
        Find main page even if main page is not in menu. Also checks empty
        search.
        """

        s = Site.objects.get(pk=1) # we always have a site: from django
        m = Menu(name="parent", url="/sitemap/", tree_id=s.id, user_id=1)
        m.save()
        m2 = Menu(name="main", url="/", tree_id=s.id, parent=m, user_id=1)
        m2.save()
        self.assertEqual(m2, Menu.find_active(s, "/"))
        self.assertEqual(m2, Menu.find_active(s, ""))
Exemplo n.º 2
0
    def test_find_forum_new(self):
        """
        /forum/new/ does not exist, but /forum/ does. Checks for /forum/new
        without trailing slash as well.
        """

        s = Site.objects.get(pk=1) # we always have a site: from django
        m = Menu(name="parent", url="/sitemap/", tree_id=s.id, user_id=1)
        m.save()
        m2 = Menu(name="main", url="/", tree_id=s.id, parent=m, user_id=1)
        m2.save()
        m3 = Menu(name="forum", url="/forum/", tree_id=s.id, parent=m, user_id=1)
        m3.save()
        self.assertEqual(m3, Menu.find_active(s, "/forum/new/"))
        self.assertEqual(m3, Menu.find_active(s, "/forum/new"))
Exemplo n.º 3
0
def simple_menu(request, default_url="/"):

    if hasattr(request, 'site'):
        site = request.site
    else:
        site = Site.objects.get(pk=1)

    # find the closest parent to the active url
    active_link = Menu.find_active(site, request.path_info)

    # find the menu closest to the active_link
    if active_link:
        menu = active_link.submenu(request.user)
    else:
        menu = Menu.objects.get(tree_id=site.id, url="/").submenu(request.user)

    return html_menu(menu, active_link)
Exemplo n.º 4
0
    def __get__(self, request, obj_type=None):
        if not hasattr(request, '_cached_active'):
            from samklang_menu.models import Menu

            request._cached_active = Menu.find_active(request.site, request.path_info)
        return request._cached_active