first_list = sorted(list(first))
second_list = sorted(list(current))
pages.extend(first_list)
- if first_list[-1] + 1 != second_list[0]:
+ diff = second_list[0] - first_list[-1]
+ if diff == 2:
+ pages.append(second_list[0] - 1)
+ elif diff == 1:
+ pass
+ else:
pages.append(None)
pages.extend(second_list)
else:
pages.extend(sorted(list(first.union(current))))
if len(current.intersection(last)) == 0:
second_list = sorted(list(last))
- if pages[-1] + 1 != second_list[0]:
+ diff = second_list[0] - pages[-1]
+ if diff == 2:
+ pages.append(second_list[0] - 1)
+ elif diff == 1:
+ pass
+ else:
pages.append(None)
pages.extend(second_list)
else:
except KeyError:
return u''
register.inclusion_tag('pagination/pagination.html', takes_context=True)(paginate)
-register.tag('autopaginate', do_autopaginate)
+register.tag('autopaginate', do_autopaginate)
\ No newline at end of file
--- /dev/null
+"""
+>>> from django.core.paginator import Paginator
+>>> from pagination.templatetags.pagination_tags import paginate
+
+>>> p = Paginator(range(15), 2)
+>>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages']
+[1, 2, 3, 4, 5, 6, 7, 8]
+
+>>> p = Paginator(range(17), 2)
+>>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages']
+[1, 2, 3, 4, 5, 6, 7, 8, 9]
+
+>>> p = Paginator(range(19), 2)
+>>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages']
+[1, 2, 3, 4, None, 7, 8, 9, 10]
+
+>>> p = Paginator(range(21), 2)
+>>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages']
+[1, 2, 3, 4, None, 8, 9, 10, 11]
+"""
\ No newline at end of file
--- /dev/null
+import sys
+sys.path.append('..')
+
+import os
+# Make a backup of DJANGO_SETTINGS_MODULE environment variable to restore later.
+backup = os.environ.get('DJANGO_SETTINGS_MODULE', '')
+os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
+
+from django.test.simple import run_tests
+
+if __name__ == "__main__":
+ failures = run_tests(['pagination',], verbosity=9)
+ if failures:
+ sys.exit(failures)
+ # Reset the DJANGO_SETTINGS_MODULE to what it was before running tests.
+ os.environ['DJANGO_SETTINGS_MODULE'] = backup