Skip to content

Fix: los buscadores ignoran tildes y orden, y mejoras en el detalle de auditoría

Agustín Cantero requested to merge fix/buscadores-auditoria-ip into dev

Qué

  • Los buscadores de la app ignoran tildes y mayúsculas y aceptan nombre y apellido en cualquier orden (Estudiantes, Auditoría, Instancias, Incidencias, selector de estudiante, Roles y Catálogos).
  • El detalle de un evento de Auditoría muestra solo lo que cambió, en un panel claro; LOGIN y LOGOUT ya no tienen botón de detalle.
  • Login y logout reenvían la IP real del cliente al backend.

Por qué

  • Buscadores: el texto del backend compara por campo y distingue tildes, así que "Agustina Acosta" daba 0 resultados y "Baez" no encontraba a "Báez".
  • Detalle de auditoría: se listaban los ~30 campos de la fila con el mismo peso sobre un fondo gris que se leía mal, y los que cambiaban se perdían. Los eventos de LOGIN y LOGOUT abrían un detalle vacío.
  • IP: los handlers de auth y el logout no mandaban X-Forwarded-For, por lo que desde Vercel todos los LOGIN y LOGOUT quedaban con IPs de AWS en lugar de la del usuario.

Cambios

  • lib/buscar-estudiante.ts: helpers de búsqueda normalizada (coincideTexto, coincidenciasPersona), lista de estudiantes y funcionarios con caché de 30 s y paginación mezclada para varios ids.
  • StudentsListView, EstudianteSelector, RolesListView y catalogos.ts: filtran en el cliente con esos helpers.
  • InstanciasListView, IncidenciasListView y AuditListView: resuelven las personas que coinciden y piden por idEstudiante o idAutor; con más de 15 coincidencias se avisa que hay que acotar la búsqueda.
  • AuditDetalleEvento.tsx (nuevo): panel con borde del color de la acción, campos modificados arriba (anterior tachado, nuevo en negrita), los iguales plegados y altas y bajas como lista.
  • lib/client-ip.ts (nuevo), auth-handlers.ts y logout/route.ts: toman la IP de x-vercel-forwarded-for o x-forwarded-for y la reenvían, igual que ya hace el proxy genérico.

Cómo probar

  1. En Estudiantes buscar "agustina acosta", "acosta agustina" y "baez": encuentra a Agustina Acosta y a los Báez.
  2. En Auditoría buscar "varsi belen": trae los eventos de ambos autores. Abrir "Ver detalle" de un UPDATE: arriba solo los campos que cambiaron.
  3. En Auditoría, un evento LOGIN o LOGOUT no muestra "Ver detalle".
  4. En Roles y en Catálogos buscar sin tildes ("categoria"): encuentra "Categoría".
  5. En Instancias buscar "ana" (muchas coincidencias): muestra el aviso de acotar la búsqueda.
  6. IP: tras el despliegue en Vercel, iniciar sesión y revisar en Auditoría que el evento LOGIN tenga la IP del usuario y no una de AWS.

Merge request reports

Loading