{# partials/pagination.html — reusable pagination component #} {% macro render_pagination(page, total_pages, total_items, per_page) %} {% if total_pages > 1 %}
Showing {{ ((page - 1) * per_page + 1) | int }}–{{ (page * per_page) if page < total_pages else total_items | int }} of {{ total_items | int }}
{% if page > 1 %} {% endif %} {% set start_page = [1, page - 2] | max %} {% set end_page = [total_pages, page + 2] | min %} {% if start_page > 1 %} 1 {% if start_page > 2 %} ... {% endif %} {% endif %} {% for p in range(start_page, end_page + 1) %} {{ p }} {% endfor %} {% if end_page < total_pages %} {% if end_page < total_pages - 1 %} ... {% endif %} {{ total_pages }} {% endif %} {% if page < total_pages %} {% endif %}
{% endif %} {% endmacro %}