Commit f80b9d0ac173a885404fa7113382d4a33eef4d5a

Authored by Zambom
1 parent 0b6a802d

Adjusting pagination

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