{% load helpers %} {% with num_pages=items.paginator.num_pages current_page=items.number ellipsis='...' %} {% if num_pages > 1 %}
{% comment %} 1. If max_page <= 9: - No dots 2. If max_page > 9 and page <= 5: - Right dots 3. If max_page > 9 and page > 5 and (max_page - page > 5): - Right and left dots 4. Else - Left dots {% endcomment %} {% if num_pages <= 9 %} {% for page in items.paginator.page_range %} {% if page = current_page %} {{ page }} {% else %} {{ page }} {% endif %} {% endfor %} {% else %} {% if current_page <= 5 %} {% for page in items.paginator.page_range|slice:":7" %} {% if page = current_page %} {{ page }} {% else %} {{ page }} {% endif %} {% endfor %} {{ ellipsis }} {{ num_pages }} {% else %} {% if num_pages|subtract:current_page <= 5 %} 1 {{ ellipsis }} {% for page in items.paginator.page_range|slice:"-7:" %} {% if page = current_page %} {{ page }} {% else %} {{ page }} {% endif %} {% endfor %} {% else %} 1 {{ ellipsis }} {% with leftslice=current_page|subtract:3 %} {% for page in items.paginator.page_range|dynamic_slice_left:leftslice|slice:":5" %} {% if page = current_page %} {{ page }} {% else %} {{ page }} {% endif %} {% endfor %} {% endwith %} {{ ellipsis }} {{ num_pages }} {% endif %} {% endif %} {% endif %}
{% endif %} {% if items.paginator.count = 0 %}

No items found.

{% endif %} {% endwith %}