forked from ungleich-public/dynamicweb
82 lines
2.4 KiB
Python
82 lines
2.4 KiB
Python
from django.urls import NoReverseMatch, reverse
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from cms.menu_bases import CMSAttachMenu
|
|
from cms.test_utils.project.sampleapp.models import Category
|
|
from menus.base import Menu, NavigationNode
|
|
from menus.menu_pool import menu_pool
|
|
|
|
|
|
class SampleAppMenu(Menu):
|
|
|
|
def get_nodes(self, request):
|
|
nodes = []
|
|
for cat in Category.objects.all():
|
|
n = NavigationNode(cat.name, cat.get_absolute_url(), cat.pk, cat.parent_id, "sampleapp")
|
|
nodes.append(n)
|
|
try:
|
|
n = NavigationNode(_('sample root page'), reverse('sample-root'), 1)
|
|
n2 = NavigationNode(_('sample settings page'), reverse('sample-settings'), 2)
|
|
n3 = NavigationNode(_('sample account page'), reverse('sample-account'), 3)
|
|
n4 = NavigationNode(_('sample my profile page'), reverse('sample-profile'), 4, 3)
|
|
nodes.append(n)
|
|
nodes.append(n2)
|
|
nodes.append(n3)
|
|
nodes.append(n4)
|
|
except NoReverseMatch:
|
|
pass
|
|
return nodes
|
|
|
|
|
|
menu_pool.register_menu(SampleAppMenu)
|
|
|
|
|
|
class StaticMenu(CMSAttachMenu):
|
|
name = _("Static Menu")
|
|
|
|
def get_nodes(self, request):
|
|
nodes = []
|
|
n = NavigationNode('static root page', "/fresh/", 1)
|
|
n2 = NavigationNode('static settings page', "/bye/", 2)
|
|
n3 = NavigationNode('static account page', "/hello/", 3)
|
|
n4 = NavigationNode('static my profile page', "/hello/world/", 4, 3)
|
|
nodes.append(n)
|
|
nodes.append(n2)
|
|
nodes.append(n3)
|
|
nodes.append(n4)
|
|
return nodes
|
|
|
|
|
|
menu_pool.register_menu(StaticMenu)
|
|
|
|
|
|
class StaticMenu2(StaticMenu):
|
|
name = _("Static Menu2")
|
|
|
|
|
|
menu_pool.register_menu(StaticMenu2)
|
|
|
|
|
|
class StaticMenu3(StaticMenu):
|
|
name = _("Static Menu3")
|
|
|
|
|
|
menu_pool.register_menu(StaticMenu3)
|
|
|
|
|
|
class StaticMenu4(CMSAttachMenu):
|
|
name = _("Static Menu4")
|
|
|
|
def get_nodes(self, request):
|
|
nodes = list()
|
|
nodes.append(NavigationNode('static fresh', '/static/fresh/', 'static fresh'))
|
|
try:
|
|
# 'sample2-root' only resolves while the sample2 apphook is attached;
|
|
# skip it gracefully otherwise instead of letting menu_pool log it.
|
|
nodes.append(NavigationNode('sample2-root', reverse('sample2-root'), 'sample2-root'))
|
|
except NoReverseMatch:
|
|
pass
|
|
return nodes
|
|
|
|
|
|
menu_pool.register_menu(StaticMenu4)
|