X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;ds=sidebyside;f=patchwork%2Ftemplatetags%2Flisturl.py;fp=patchwork%2Ftemplatetags%2Flisturl.py;h=a52f4fdb617f5a00d2854d86a7f5fac92223f69f;hb=ea1baeefb09236cfbf30ce35a2d67d601e3ff69f;hp=6dbdd745815d4df0cef82031f8fe60906097ab47;hpb=28d553ed15c96ee6000c4ae8b7837bdfd7d57121;p=patchwork diff --git a/patchwork/templatetags/listurl.py b/patchwork/templatetags/listurl.py index 6dbdd74..a52f4fd 100644 --- a/patchwork/templatetags/listurl.py +++ b/patchwork/templatetags/listurl.py @@ -19,19 +19,19 @@ from django import template from django.utils.html import escape -from django.utils.safestring import mark_safe from django.utils.encoding import smart_str from patchwork.filters import filterclasses from django.conf import settings from django.core.urlresolvers import reverse, NoReverseMatch -import re register = template.Library() # params to preserve across views -list_params = [ c.param for c in filterclasses ] + ['order', 'page'] +list_params = [c.param for c in filterclasses] + ['order', 'page'] + class ListURLNode(template.defaulttags.URLNode): + def __init__(self, kwargs): super(ListURLNode, self).__init__(None, [], {}, False) self.params = {} @@ -41,8 +41,7 @@ class ListURLNode(template.defaulttags.URLNode): def render(self, context): view_name = template.Variable('list_view.view').resolve(context) - kwargs = template.Variable('list_view.view_params') \ - .resolve(context) + kwargs = template.Variable('list_view.view_params').resolve(context) str = None try: @@ -51,10 +50,10 @@ class ListURLNode(template.defaulttags.URLNode): try: project_name = settings.SETTINGS_MODULE.split('.')[0] str = reverse(project_name + '.' + view_name, - args=[], kwargs=kwargs) + args=[], kwargs=kwargs) except NoReverseMatch: raise - + if str is None: return '' @@ -66,13 +65,14 @@ class ListURLNode(template.defaulttags.URLNode): pass for (k, v) in self.params.iteritems(): - params[smart_str(k,'ascii')] = v.resolve(context) + params[smart_str(k, 'ascii')] = v.resolve(context) if not params: return str - return str + '?' + '&'.join(['%s=%s' % (k, escape(v)) \ - for (k, v) in params.iteritems()]) + return str + '?' + '&'.join( + ['%s=%s' % (k, escape(v)) for (k, v) in params.iteritems()]) + @register.tag def listurl(parser, token):