]> git.ozlabs.org Git - patchwork/blobdiff - patchwork/templatetags/listurl.py
settings: Move 'TEST_RUNNER' to correct location
[patchwork] / patchwork / templatetags / listurl.py
index 5fe03e469c43d1b46b3015abec468dda9e43ee8a..a52f4fdb617f5a00d2854d86a7f5fac92223f69f 100644 (file)
 
 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,20 +65,21 @@ 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):
     bits = token.contents.split(' ', 1)
     if len(bits) < 1:
-        raise TemplateSyntaxError("'%s' takes at least one argument"
-                                  " (path to a view)" % bits[0])
+        raise template.TemplateSyntaxError(
+            "'%s' takes at least one argument (path to a view)" % bits[0])
     kwargs = {}
     if len(bits) > 1:
         for arg in bits[1].split(','):
@@ -88,49 +88,6 @@ def listurl(parser, token):
                 k = k.strip()
                 kwargs[k] = parser.compile_filter(v)
             else:
-                raise TemplateSyntaxError("'%s' requires name=value params" \
-                                          % bits[0])
+                raise template.TemplateSyntaxError(
+                    "'%s' requires name=value params" % bits[0])
     return ListURLNode(kwargs)
-
-class ListFieldsNode(template.Node):
-    def __init__(self, params):
-        self.params = params
-
-    def render(self, context):
-        self.view_name = template.Variable('list_view.view').resolve(context)
-        try:
-            qs_var = template.Variable('list_view.params')
-            params = dict(qs_var.resolve(context))
-        except Exception:
-            pass
-
-        params.update(self.params)
-
-        if not params:
-            return ''
-
-        str = ''
-        for (k, v) in params.iteritems():
-            str += '<input type="hidden" name="%s" value="%s"\>' % \
-                   (k, escape(v))
-
-        return mark_safe(str)
-
-@register.tag
-def listfields(parser, token):
-    bits = token.contents.split(' ', 1)
-    if len(bits) < 1:
-        raise TemplateSyntaxError("'%s' takes at least one argument"
-                                  " (path to a view)" % bits[0])
-    params = {}
-    if len(bits) > 2:
-        for arg in bits[2].split(','):
-            if '=' in arg:
-                k, v = arg.split('=', 1)
-                k = k.strip()
-                params[k] = parser.compile_filter(v)
-            else:
-                raise TemplateSyntaxError("'%s' requires name=value params" \
-                                          % bits[0])
-    return ListFieldsNode(bits[1], params)
-