Commit f80b9d0ac173a885404fa7113382d4a33eef4d5a

Authored by Zambom
1 parent 0b6a802d

Adjusting pagination

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 }}">&laquo;</a></li>
  7 + {% else %}
  8 + <li class="disabled"><span>&laquo;</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 }}">&raquo;</a></li>
  19 + {% else %}
  20 + <li class="disabled"><span>&raquo;</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:
... ...