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,11 +2,23 @@ | ||
2 | <div class="row-fluid"> | 2 | <div class="row-fluid"> |
3 | <div class="col-md-12 col-lg-12 col-sm-12 col-xs-12 text-center"> | 3 | <div class="col-md-12 col-lg-12 col-sm-12 col-xs-12 text-center"> |
4 | <ul class="pagination"> | 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 | <li{% if page_obj.number == page_number %} class="active"{% endif %}> | 12 | <li{% if page_obj.number == page_number %} class="active"{% endif %}> |
7 | <a href="?page={{ page_number }}{{ getvars }}">{{ page_number }}</a> | 13 | <a href="?page={{ page_number }}{{ getvars }}">{{ page_number }}</a> |
8 | </li> | 14 | </li> |
9 | {% endfor %} | 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 | </ul> | 22 | </ul> |
11 | </div> | 23 | </div> |
12 | </div> | 24 | </div> |
amadeus/templatetags/pagination.py
@@ -10,6 +10,32 @@ def pagination(request, paginator, page_obj): | @@ -10,6 +10,32 @@ def pagination(request, paginator, page_obj): | ||
10 | 'page_obj': page_obj, | 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 | getvars = request.GET.copy() | 39 | getvars = request.GET.copy() |
14 | 40 | ||
15 | if 'page' in getvars: | 41 | if 'page' in getvars: |