Commit f80b9d0ac173a885404fa7113382d4a33eef4d5a
1 parent
0b6a802d
Exists in
master
and in
3 other branches
Adjusting pagination
Showing
2 changed files
with
39 additions
and
1 deletions
Show diff stats
amadeus/templates/pagination.html
... | ... | @@ -2,11 +2,23 @@ |
2 | 2 | <div class="row-fluid"> |
3 | 3 | <div class="col-md-12 col-lg-12 col-sm-12 col-xs-12 text-center"> |
4 | 4 | <ul class="pagination"> |
5 | - {% for page_number in paginator.page_range %} | |
5 | + {% if page_obj.has_previous %} | |
6 | + <li><a href="?page={{ page_obj.previous_page_number }}">«</a></li> | |
7 | + {% else %} | |
8 | + <li class="disabled"><span>«</span></li> | |
9 | + {% endif %} | |
10 | + | |
11 | + {% for page_number in page_numbers %} | |
6 | 12 | <li{% if page_obj.number == page_number %} class="active"{% endif %}> |
7 | 13 | <a href="?page={{ page_number }}{{ getvars }}">{{ page_number }}</a> |
8 | 14 | </li> |
9 | 15 | {% endfor %} |
16 | + | |
17 | + {% if page_obj.has_next %} | |
18 | + <li><a href="?page={{ page_obj.next_page_number }}">»</a></li> | |
19 | + {% else %} | |
20 | + <li class="disabled"><span>»</span></li> | |
21 | + {% endif %} | |
10 | 22 | </ul> |
11 | 23 | </div> |
12 | 24 | </div> | ... | ... |
amadeus/templatetags/pagination.py
... | ... | @@ -10,6 +10,32 @@ def pagination(request, paginator, page_obj): |
10 | 10 | 'page_obj': page_obj, |
11 | 11 | } |
12 | 12 | |
13 | + page_numbers = [] | |
14 | + | |
15 | + if paginator.num_pages <= 10: | |
16 | + page_numbers = paginator.page_range | |
17 | + else: | |
18 | + init = page_obj.number - 5 | |
19 | + end = page_obj.number + 5 | |
20 | + | |
21 | + if init <= 0: | |
22 | + init = 1 | |
23 | + | |
24 | + if end > paginator.num_pages: | |
25 | + end = paginator.num_pages + 1 | |
26 | + | |
27 | + if (end - init) < 10: | |
28 | + if init == 1 and end < paginator.num_pages: | |
29 | + end += (10 - (end - init)) | |
30 | + elif init > 1 and end == paginator.num_pages + 1: | |
31 | + init -= (10 - (end - init)) | |
32 | + | |
33 | + for n in range(init, end): | |
34 | + if n > 0 and n <= paginator.num_pages: | |
35 | + page_numbers.append(n) | |
36 | + | |
37 | + context['page_numbers'] = page_numbers | |
38 | + | |
13 | 39 | getvars = request.GET.copy() |
14 | 40 | |
15 | 41 | if 'page' in getvars: | ... | ... |