aboutsummaryrefslogtreecommitdiffstats
path: root/gitrefinery/templatetags/addurlparameter.py
diff options
context:
space:
mode:
Diffstat (limited to 'gitrefinery/templatetags/addurlparameter.py')
-rw-r--r--gitrefinery/templatetags/addurlparameter.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/gitrefinery/templatetags/addurlparameter.py b/gitrefinery/templatetags/addurlparameter.py
new file mode 100644
index 0000000..deca130
--- /dev/null
+++ b/gitrefinery/templatetags/addurlparameter.py
@@ -0,0 +1,29 @@
+# Borrowed from http://djangosnippets.org/snippets/361/
+# Original author: johan de taeye
+# With modifications from Ludwik Trammer
+#
+# Adds GET parameters to the current URL
+
+from django.template import Library, Node, TemplateSyntaxError, Variable
+
+register = Library()
+
+class AddParameter(Node):
+ def __init__(self, varname, value):
+ self.varname = Variable(varname)
+ self.value = Variable(value)
+
+ def render(self, context):
+ req = Variable('request').resolve(context)
+ params = req.GET.copy()
+ params[self.varname.resolve(context)] = self.value.resolve(context)
+ return '%s?%s' % (req.path, params.urlencode())
+
+def addurlparameter(parser, token):
+ from re import split
+ bits = split(r'\s+', token.contents, 2)
+ if len(bits) < 2:
+ raise TemplateSyntaxError("'%s' tag requires two arguments" % bits[0])
+ return AddParameter(bits[1],bits[2])
+
+register.tag('addurlparameter', addurlparameter)