{# Admin panel: audit log. Contract con el backend host: - GET audit_list_url (paginado) → server-side render con ``events``, ``page``, ``total_pages``, ``next_url``, ``prev_url``. Cada event = {ts_label, actor_email, action, target, ip}. #} {% from "dg/components/page_header.html" import page_header %} {% from "dg/components/paginated_table.html" import paginated_table %} {% call page_header(title="Audit log", subtitle="Eventos de seguridad y cambios") %}{% endcall %} {{ paginated_table( columns=["Fecha", "Usuario", "Acción", "Target", "IP"], keys=["ts_label", "actor_email", "action", "target", "ip"], rows=events, page=page | default(1), total_pages=total_pages | default(1), prev_url=prev_url, next_url=next_url, target="#dg-audit-table", empty_message="No hay eventos registrados." ) }}