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 = {}
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:
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 ''
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):