{% extends "base.html" %} {% block title %}Logs de Acceso - {{ config.APP_NAME }}{% endblock %} {% block content %}

Logs de Acceso

Registro completo de todas las actividades del sistema para auditoría de seguridad.

Filtros de Búsqueda

Limpiar Filtros
{% for key, value in request.args.items() %} {% if key not in ['action', 'username', 'date_from', 'date_to', 'per_page', 'page'] %} {% endif %} {% endfor %}
{% set total_logs = logs.total %} {% set login_logs = logs.items|selectattr('action', 'equalto', 'login')|list|length %} {% set view_logs = logs.items|selectattr('action', 'equalto', 'view')|list|length %} {% set edit_logs = logs.items|selectattr('action', 'equalto', 'update')|list|length %}
Total Registros
{{ total_logs }}
Inicios de Sesión
{{ login_logs }}
Visualizaciones
{{ view_logs }}
Modificaciones
{{ edit_logs }}
{% if logs.items %}

Registro de Actividades

Mostrando {{ logs.per_page * (logs.page - 1) + 1 }} - {{ logs.per_page * logs.page if logs.has_next else logs.total }} de {{ logs.total }} registros

{% for log in logs.items %} {% endfor %}
Fecha/Hora Usuario Acción Detalles IP
{{ log.timestamp.strftime('%d/%m/%Y') }}
{{ log.timestamp.strftime('%H:%M:%S') }}
{{ log.user.username[0].upper() }}
{{ log.user.username }}
{% if log.user.department %}
{{ log.user.department.name }}
{% endif %}
{% if log.action == 'login' %} Inicio de sesión {% elif log.action == 'logout' %} Cierre de sesión {% elif log.action == 'view' %} Visualización {% elif log.action == 'create' %} Creación {% elif log.action == 'update' %} Edición {% elif log.action == 'delete' %} Eliminación {% elif log.action == 'export' %} Exportación {% elif log.action == 'import' %} Importación {% else %} {{ log.action.title() }} {% endif %} {% if log.details %}

{{ log.details }}

{% else %} Sin detalles {% endif %}
{{ log.ip_address or 'N/A' }}
{% else %}

No hay logs disponibles

{% if request.args %} No se encontraron registros que coincidan con los filtros seleccionados. {% else %} Los logs de actividad aparecerán aquí cuando los usuarios interactúen con el sistema. {% endif %}

{% if request.args %} Limpiar Filtros {% endif %}
{% endif %}
{% if logs.pages > 1 %}
Mostrando {{ logs.per_page * (logs.page - 1) + 1 }} a {{ logs.per_page * logs.page if logs.has_next else logs.total }} de {{ logs.total }} registros
{% if logs.page > 1 %} {% endif %} {% if logs.has_prev %} {% endif %} {% set start_page = [logs.page - 2, 1]|max %} {% set end_page = [logs.page + 2, logs.pages]|min %} {% if start_page > 1 %} ... {% endif %} {% for page_num in range(start_page, end_page + 1) %} {% if page_num == logs.page %} {{ page_num }} {% else %} {{ page_num }} {% endif %} {% endfor %} {% if end_page < logs.pages %} ... {% endif %} {% if logs.has_next %} {% endif %} {% if logs.page < logs.pages %} {% endif %}
Ir a:
{% for key, value in request.args.items() %} {% if key != 'page' %} {% endif %} {% endfor %}
{% endif %}
{% endblock %}