Skip to content

Commit 5e92405

Browse files
committed
Added template tag main_menu_embody_id
1 parent 425823b commit 5e92405

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

cms_bootstrap3/templatetags/bootstrap_tags.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from __future__ import unicode_literals
33
from django import template
44
from menus.menu_pool import menu_pool
5-
from classytags.arguments import IntegerArgument, StringArgument, Argument
5+
from classytags.arguments import IntegerArgument, StringArgument, Argument, Flag
66
from classytags.helpers import InclusionTag
77
from classytags.core import Options
88
from menus.templatetags.menu_tags import flatten, remove
@@ -56,9 +56,10 @@ class MainMenu(InclusionTag):
5656
StringArgument('template', default='bootstrap/menu/navbar.html', required=False),
5757
StringArgument('namespace', default=None, required=False),
5858
StringArgument('root_id', default=None, required=False),
59+
Flag('embody_root', default=False, true_values=['embody_root']),
5960
)
6061

61-
def get_context(self, context, template, namespace, root_id):
62+
def get_context(self, context, template, namespace, root_id, embody_root):
6263
try:
6364
# If there's an exception (500), default context_processors may not be called.
6465
request = context['request']
@@ -77,6 +78,9 @@ def get_context(self, context, template, namespace, root_id):
7778
remove_parent.parent = None
7879
start_level = node.level + 1
7980
nodes = flatten(nodes)
81+
if embody_root:
82+
node.level = start_level
83+
nodes.insert(0, node)
8084
else:
8185
nodes = []
8286
children = cut_levels(nodes, start_level)
@@ -93,11 +97,24 @@ class MainMenuBelowId(MainMenu):
9397
Argument('root_id', default=None, required=False),
9498
StringArgument('template', default='bootstrap/menu/navbar.html', required=False),
9599
StringArgument('namespace', default=None, required=False),
100+
Flag('embody_root', default=False, true_values=['embody_root']),
96101
)
97102

98103
register.tag(MainMenuBelowId)
99104

100105

106+
class MainMenuEmbodyId(MainMenu):
107+
name = 'main_menu_embody_id'
108+
options = Options(
109+
Argument('root_id', default=None, required=False),
110+
StringArgument('template', default='bootstrap/menu/navbar.html', required=False),
111+
StringArgument('namespace', default=None, required=False),
112+
Flag('embody_root', default=True, false_values=['skip_root']),
113+
)
114+
115+
register.tag(MainMenuEmbodyId)
116+
117+
101118
class Paginator(InclusionTag):
102119
name = 'paginator'
103120
template = 'bootstrap/components/paginator.html'

0 commit comments

Comments
 (0)