Added 1.2.X compatibility to shipherd LazyNavigationRecurser.
authorStephen Burrows <stephen.r.burrows@gmail.com>
Wed, 13 Apr 2011 19:06:42 +0000 (15:06 -0400)
committerStephen Burrows <stephen.r.burrows@gmail.com>
Wed, 13 Apr 2011 19:06:42 +0000 (15:06 -0400)
contrib/shipherd/templatetags/shipherd.py

index 1413bdf..6e36126 100644 (file)
@@ -1,4 +1,4 @@
-from django import template
+from django import template, VERSION as django_version
 from django.conf import settings
 from django.utils.safestring import mark_safe
 from philo.contrib.shipherd.models import Navigation
@@ -60,6 +60,10 @@ class LazyNavigationRecurser(object):
                        context['item'] = item
                        context['children'] = self.__class__(self.template_nodes, item.get_children(), context, request)
                        
+                       # Django 1.2.X compatibility - a lazy recurser will not be called if accessed as a template variable.
+                       if django_version < (1,3):
+                               context['children'] = context['children']()
+                       
                        # Then render the nodelist bit by bit.
                        for node in self.template_nodes:
                                bits.append(node.render(context))