Python 3, Django 1.7+ compatilibity, some tests.
[fnpdjango.git] / fnpdjango / templatetags / fnp_prevnext.py
index 4cfbb08..cb4efe2 100644 (file)
@@ -1,5 +1,12 @@
+from copy import copy
 from django.template import Library
 
+try:
+    from urllib.parse import urlencode
+except ImportError:
+    from urllib import urlencode
+
+
 register = Library()
 
 
@@ -7,7 +14,10 @@ register = Library()
 def previous_page(context, fallback=None, fallback_title=None):
     current = context['page_obj'].number
     if current > 1:
-        return {'number': current - 1, 'title': None, 'url': None}
+        get_dict = copy(context['request'].GET)
+        get_dict['page'] = current - 1
+        return {'number': current - 1, 'title': None, 'url': None,
+                'get_dict': urlencode(get_dict)}
     else:
         return {'number': None, 'title': fallback_title, 'url': fallback}
 
@@ -17,7 +27,10 @@ def next_page(context, fallback=None, fallback_title=None):
     current = context['page_obj'].number
     page_range = context['paginator'].page_range
     if current < page_range[-1]:
-        return {'number': current + 1, 'title': None, 'url': None}
+        get_dict = copy(context['request'].GET)
+        get_dict['page'] = current + 1
+        return {'number': current + 1, 'title': None, 'url': None,
+                'get_dict': urlencode(get_dict)}
     else:
         return {'number': None, 'title': fallback_title, 'url': fallback}