{# Macro paginated_table Tabla con paginación HTMX. Asume que ``columns`` es lista de strings y ``rows`` lista de dicts con claves coincidentes (o lista de listas). Uso: {% from "core/components/paginated_table.html" import paginated_table %} {{ paginated_table( columns=["Email", "Rol"], keys=["email", "role"], rows=users, page=1, total_pages=4, prev_url="/api/users?page=0", next_url="/api/users?page=2" ) }} #} {% from "core/components/data_table.html" import data_table_open, tr_empty %} {% from "core/components/icon.html" import icon %} {% macro paginated_table(columns, rows, keys=none, page=1, total_pages=1, prev_url=none, next_url=none, target="#dg-table", empty_message="Sin datos") %}
{% call data_table_open(cols=columns) %} {% for row in rows %} {% if keys %} {% for k in keys %} {{ row[k] }} {% endfor %} {% else %} {% for cell in row %} {{ cell }} {% endfor %} {% endif %} {% else %} {{ tr_empty(empty_message, colspan=columns|length) }} {% endfor %} {% endcall %} {% set _indicator_id = target | replace('#', '') ~ '-loading' %}
{%- endmacro %}