2 >>> from django.core.paginator import Paginator
3 >>> from pagination.templatetags.pagination_tags import paginate
4 >>> from django.template import Template, Context
6 >>> p = Paginator(range(15), 2)
7 >>> pg = paginate({'paginator': p, 'page_obj': p.page(1)})
9 [1, 2, 3, 4, 5, 6, 7, 8]
10 >>> pg['records']['first']
12 >>> pg['records']['last']
15 >>> p = Paginator(range(15), 2)
16 >>> pg = paginate({'paginator': p, 'page_obj': p.page(8)})
18 [1, 2, 3, 4, 5, 6, 7, 8]
19 >>> pg['records']['first']
21 >>> pg['records']['last']
24 >>> p = Paginator(range(17), 2)
25 >>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages']
26 [1, 2, 3, 4, 5, 6, 7, 8, 9]
30 # moving the window from 1 ... to end
31 # window size = 2, margin = 2
32 # [1] 2 3 4 5 ... 15, 16
33 # 1 [2] 3 4 5 ... 15, 16
34 # 1 2 [3] 4 5 ... 15, 16
35 # 1 2 3 [4] 5 6 ... 15, 16
36 # 1 2 3 4 [5] 6 7 ... 15, 16
37 # 1 2 3 4 5 [6] 7 8 ... 15, 16
38 # 1 2 ... 5 6 [7] 8 9 ... 15, 16
40 # window = 2 -> show 5 pages
41 >>> p = Paginator(range(31), 2)
42 >>> paginate({'paginator': p, 'page_obj': p.page(1)}, 2, '', 2)['pages']
43 [1, 2, 3, 4, 5, None, 15, 16]
45 >>> p = Paginator(range(31), 2)
46 >>> paginate({'paginator': p, 'page_obj': p.page(2)}, 2, '', 2)['pages']
47 [1, 2, 3, 4, 5, None, 15, 16]
49 >>> p = Paginator(range(31), 2)
50 >>> paginate({'paginator': p, 'page_obj': p.page(3)}, 2, '', 2)['pages']
51 [1, 2, 3, 4, 5, None, 15, 16]
53 >>> p = Paginator(range(31), 2)
54 >>> paginate({'paginator': p, 'page_obj': p.page(4)}, 2, '', 2)['pages']
55 [1, 2, 3, 4, 5, 6, None, 15, 16]
57 >>> p = Paginator(range(31), 2)
58 >>> paginate({'paginator': p, 'page_obj': p.page(5)}, 2, '', 2)['pages']
59 [1, 2, 3, 4, 5, 6, 7, None, 15, 16]
62 >>> p = Paginator(range(31), 2)
63 >>> paginate({'paginator': p, 'page_obj': p.page(7)}, 2, '', 2)['pages']
64 [1, 2, None, 5, 6, 7, 8, 9, None, 15, 16]
67 >>> p = Paginator(range(31), 2)
68 >>> paginate({'paginator': p, 'page_obj': p.page(16)}, 2, '', 2)['pages']
69 [1, 2, None, 12, 13, 14, 15, 16]
71 >>> p = Paginator(range(31), 2)
72 >>> paginate({'paginator': p, 'page_obj': p.page(13)}, 2, '', 2)['pages']
73 [1, 2, None, 11, 12, 13, 14, 15, 16]
76 >>> p = Paginator(range(0), 2)
77 >>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages']
83 >>> p = Paginator(range(31), 2)
84 >>> paginate({'paginator': p, 'page_obj': p.page(3)}, 2, '', 0)['pages']
87 >>> p = Paginator(range(31), 2)
88 >>> paginate({'paginator': p, 'page_obj': p.page(5)}, 2, '', 0)['pages']
89 [None, 3, 4, 5, 6, 7, None]
91 >>> p = Paginator(range(31), 2)
92 >>> paginate({'paginator': p, 'page_obj': p.page(16)}, 2, '', 0)['pages']
93 [None, 12, 13, 14, 15, 16]
97 # zero window, zero margin
98 >>> p = Paginator(range(31), 2)
99 >>> paginate({'paginator': p, 'page_obj': p.page(1)}, 0, '', 0)['pages']
102 >>> p = Paginator(range(31), 2)
103 >>> paginate({'paginator': p, 'page_obj': p.page(2)}, 0, '', 0)['pages']
106 >>> p = Paginator(range(31), 2)
107 >>> paginate({'paginator': p, 'page_obj': p.page(3)}, 0, '', 0)['pages']
110 >>> p = Paginator(range(31), 2)
111 >>> paginate({'paginator': p, 'page_obj': p.page(10)}, 0, '', 0)['pages']
114 >>> p = Paginator(range(31), 2)
115 >>> paginate({'paginator': p, 'page_obj': p.page(14)}, 0, '', 0)['pages']
118 >>> p = Paginator(range(31), 2)
119 >>> paginate({'paginator': p, 'page_obj': p.page(15)}, 0, '', 0)['pages']
122 >>> p = Paginator(range(31), 2)
123 >>> paginate({'paginator': p, 'page_obj': p.page(16)}, 0, '', 0)['pages']
126 >>> p = Paginator(range(31), 2)
127 >>> paginate({'paginator': p, 'page_obj': p.page(5)}, 0, '', 1)['pages']
128 [1, None, 5, None, 16]