diff --git a/navutils/templatetags/navutils_tags.py b/navutils/templatetags/navutils_tags.py index 97a72a3..da37481 100644 --- a/navutils/templatetags/navutils_tags.py +++ b/navutils/templatetags/navutils_tags.py @@ -55,6 +55,7 @@ def render_node(context, node, **kwargs): max_depth = kwargs.get('max_depth', context.get('max_depth', 999)) start_depth = kwargs.get('start_depth', context.get('start_depth', node.depth)) current_depth = kwargs.get('current_depth', context.get('current_depth', node.depth - start_depth)) + template_file = kwargs.get('template', node.template) viewable_children = [] if current_depth + 1 <= max_depth: @@ -62,7 +63,7 @@ def render_node(context, node, **kwargs): if child.is_viewable_by(user, context): viewable_children.append(child) - t = template.loader.get_template(node.template) + t = template.loader.get_template(template_file) c = { 'is_current': node.is_current(current), diff --git a/tests/test_menu.py b/tests/test_menu.py index 3c6a541..e30b64a 100644 --- a/tests/test_menu.py +++ b/tests/test_menu.py @@ -297,6 +297,17 @@ def test_render_node_template_tag_with_node_attrs(self): Test """) + def test_render_node_template_tag_with_overridden_template_file(self): + attrs = {'id': 'important'} + node = menu.Node('test', 'Test', url='http://test.com', attrs=attrs) + + output = navutils_tags.render_node({}, node=node, user=self.user, template='navutils/node.html') + self.assertHTMLEqual( + output, + """