summaryrefslogtreecommitdiff
path: root/saleor/core/templatetags/shop.py
diff options
context:
space:
mode:
Diffstat (limited to 'saleor/core/templatetags/shop.py')
-rw-r--r--saleor/core/templatetags/shop.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/saleor/core/templatetags/shop.py b/saleor/core/templatetags/shop.py
index f5318703..598baa6e 100644
--- a/saleor/core/templatetags/shop.py
+++ b/saleor/core/templatetags/shop.py
@@ -1,9 +1,12 @@
+from __future__ import unicode_literals
try:
from itertools import zip_longest
except ImportError:
from itertools import izip_longest as zip_longest
from django.template import Library
+from django.utils.http import urlencode
+
register = Library()
@@ -13,3 +16,14 @@ def slice(items, group_size=1):
args = [iter(items)] * group_size
return (filter(None, group)
for group in zip_longest(*args, fillvalue=None))
+
+
+@register.simple_tag(takes_context=True)
+def get_sort_by_url(context, field, descending=False):
+ request = context['request']
+ request_get = request.GET.dict()
+ if descending:
+ request_get['sort_by'] = '-' + field
+ else:
+ request_get['sort_by'] = field
+ return '%s?%s' % (request.path, urlencode(request_get))