Добавлена нумерация страниц в пагинацию

- Вместо текста 'X / Y' теперь кликабельные цифры страниц
- Показывается до 10 страниц (±5 от текущей)
- Текущая страница выделена (active)
- Умная логика: если на странице 15, показывает 10-20
- Все параметры фильтров сохраняются при клике на номер страницы
This commit is contained in:
2026-01-03 15:13:41 +03:00
parent ce67062ac3
commit b27fb1236a

View File

@@ -153,9 +153,22 @@
</li>
{% endif %}
{# Цифры страниц: показываем до 10 страниц #}
{% with start_page=page_obj.number|add:"-5" end_page=page_obj.number|add:"5" %}
{% for num in page_obj.paginator.page_range %}
{% if num >= start_page|default:1 and num <= end_page and num <= page_obj.paginator.num_pages %}
{% if num == page_obj.number %}
<li class="page-item active">
<span class="page-link">{{ page_obj.number }} / {{ page_obj.paginator.num_pages }}</span>
<span class="page-link">{{ num }}</span>
</li>
{% else %}
<li class="page-item">
<a class="page-link" href="?page={{ num }}&{{ params.urlencode }}">{{ num }}</a>
</li>
{% endif %}
{% endif %}
{% endfor %}
{% endwith %}
{% if page_obj.has_next %}
<li class="page-item">