X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/5d58ac8166e024c88f70a62d4fcd6db70fa83380..0cbc3b76a93d6c69e649378a10b75aa57cc7165d:/philo/contrib/shipherd/templatetags/shipherd.py diff --git a/philo/contrib/shipherd/templatetags/shipherd.py b/philo/contrib/shipherd/templatetags/shipherd.py index 1031d73..f522dfa 100644 --- a/philo/contrib/shipherd/templatetags/shipherd.py +++ b/philo/contrib/shipherd/templatetags/shipherd.py @@ -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