X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/e96369a63407b44b8e363b057194a89dc4c5fd69..61b73fe068172f02d6c47e2b5387161919ec9618:/philo/contrib/shipherd/templatetags/shipherd.py
diff --git a/philo/contrib/shipherd/templatetags/shipherd.py b/philo/contrib/shipherd/templatetags/shipherd.py
index 1031d73..4fae9c4 100644
--- a/philo/contrib/shipherd/templatetags/shipherd.py
+++ b/philo/contrib/shipherd/templatetags/shipherd.py
@@ -131,7 +131,7 @@ def recursenavigation(parser, token):
{% recursenavigation node "main" %}
-
- {{ item.text }}
+ {{ item.text }}
{% if item.get_children %}
{{ children }}
@@ -141,21 +141,10 @@ def recursenavigation(parser, token):
{% endrecursenavigation %}
- .. note:: {% recursenavigation %} requires that the current :class:`HttpRequest` be present in the context as ``request``. The simplest way to do this is with the `request context processor`_. If this is installed with just the default template context processors, the entry in your settings file will look like this::
-
- TEMPLATE_CONTEXT_PROCESSORS = (
- # Defaults
- "django.contrib.auth.context_processors.auth",
- "django.core.context_processors.debug",
- "django.core.context_processors.i18n",
- "django.core.context_processors.media",
- "django.core.context_processors.static",
- "django.contrib.messages.context_processors.messages"
- ...
- "django.core.context_processors.request"
- )
+ .. note:: {% recursenavigation %} requires that the current :class:`HttpRequest` be present in the context as ``request``. The simplest way to do this is with the `request context processor`_. Simply make sure that ``django.core.context_processors.request`` is included in your :setting:`TEMPLATE_CONTEXT_PROCESSORS` setting.
.. _request context processor: https://docs.djangoproject.com/en/dev/ref/templates/api/#django-core-context-processors-request
+
"""
bits = token.contents.split()
if len(bits) != 3:
@@ -173,13 +162,7 @@ def recursenavigation(parser, token):
def has_navigation(node, key=None):
"""Returns ``True`` if the node has a :class:`.Navigation` with the given key and ``False`` otherwise. If ``key`` is ``None``, returns whether the node has any :class:`.Navigation`\ s at all."""
try:
- nav = node.navigation
- if key is not None:
- if key in nav and bool(node.navigation[key]):
- return True
- elif key not in node.navigation:
- return False
- return bool(node.navigation)
+ return bool(node.navigation[key])
except:
return False
@@ -188,6 +171,6 @@ def has_navigation(node, key=None):
def navigation_host(node, key):
"""Returns the :class:`.Node` which hosts the :class:`.Navigation` which ``node`` has inherited for ``key``. Returns ``node`` if any exceptions are encountered."""
try:
- return Navigation.objects.filter(node__in=node.get_ancestors(include_self=True), key=key).order_by('-node__level')[0].node
+ return node.navigation[key].node
except:
return node
\ No newline at end of file