0.5: Django 3.2 support, drop Django<1.11, Python<3.6, remove some compatibility...
[fnpdjango.git] / fnpdjango / templatetags / fnp_prevnext.py
index 4cfbb08..a808e6e 100644 (file)
@@ -1,5 +1,8 @@
+from copy import copy
+from urllib.parse import urlencode
 from django.template import Library
 
+
 register = Library()
 
 
@@ -7,7 +10,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 +23,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}