{# Reusable macros for templates #} {# Pagination macro Parameters: - page: Current page number - total_pages: Total number of pages - params: Dict of query parameters to preserve (e.g., {"search": "foo", "limit": 50}) #} {% macro pagination(page, total_pages, params={}) %} {% if total_pages > 1 %} {% set query_parts = [] %} {% for key, value in params.items() %} {% if value is not none and value != '' %} {% set _ = query_parts.append(key ~ '=' ~ value) %} {% endif %} {% endfor %} {% set base_query = query_parts|join('&') %} {% set query_prefix = '&' if base_query else '' %}