Clasificador por reglas sin IA, correccion manual (migracion 040) y filas desplegables en ListView.
Flyout por encima de popups.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
La IA consulta solo el nombre del procesador y devuelve el año (el mas antiguo si hay dos).
Migracion 039.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Barra igual a la del Calendario (Hoy, anterior/siguiente, mes y ano; vista a la
derecha), vista Mes por defecto y aviso cuando no hay medicos configurados (antes
la vista Dia quedaba vacia).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Vista Mes tipo calendario (componente reutilizable MonthGrid) y vista Semana con
las citas de todos los medicos filtrados, coloreadas por medico; leyenda de
colores y vista elegida persistida.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Modulo clinic (habilitado por usuario): citas de pacientes para medicos con choques
bloqueantes (medico, paciente con cualquier medico, quirofano/bloqueos recurrentes y
horario de atencion), validados en transaccion con bloqueo de filas para que dos
recepcionistas no tomen el mismo hueco. Recepcion (alcance todos) y medico (alcance
propio). Vista Dia por columnas de medico, Semana y Lista; pacientes con historial;
bloqueos; configuracion de personal, horarios y tipos solo admin/superadmin. Capa de
citas en el calendario personal del medico. Migracion 036.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
El usuario solicita el cambio desde Mi cuenta (correo nuevo + clave actual). Lo
aprueba un admin/superadmin (colaboradores), solo un superadmin (admins) o el propio
superadmin mediante enlace a su correo actual. Tras aprobar se envia confirmacion al
correo nuevo y aviso al actual; al confirmar se aplica el cambio y se cierran todas
las sesiones. Todo el proceso queda en auditoria. Migracion 035.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Calendario personal para todos los roles: reuniones que organizo o me invitaron,
proyectos donde soy dueno/miembro, actividades y tareas donde soy responsable y
tareas recurrentes creadas o compartidas conmigo (solo lectura si no soy el creador).
Filtros Ver (Todo / Solo lo mio / Compartido conmigo) y Mostrar (lista de tipos con
Todo); colores por tipo, vencidos en rojo, compartido marcado con franja.
La pestana Calendario del proyecto muestra todas sus reuniones vinculadas.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Menu Calendario (Mes/Semana/Dia/Agenda) para agendar reuniones con participantes
internos y externos, RSVP, vinculo a proyecto, vencimientos de actividades,
invitaciones iCalendar por correo, recurrencia con excepciones, recordatorios
in-app y aviso de choques. Migracion 034_meetings.sql.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Permisos (superadmin, viewer, busqueda, tareas recurrentes), bootstrap atomico,
revocacion de JWT por version de sesion (028), control optimista de edicion (029),
logo sin SVG + CSP, ingesta endurecida, correos escapados, borradores, paginacion
de proyectos, accesibilidad de dialogos/controles e i18n.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Desplegable con casillas junto al titulo para mostrar/ocultar cada tarjeta,
persistido por usuario en localStorage.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
El service worker servia index.html desde su precache en cada navegacion.
Navegaciones pasan a NetworkFirst (cache solo offline), serve.json agrega
no-cache a html/sw.js e immutable a /assets, y se chequean actualizaciones
del SW cada 30 min y al volver a la pestaña.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
El detalle vive en los popups de las tarjetas; se elimina tambien la consulta
myPendingActivities del backend, que quedaba sin uso.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Las 7 tarjetas abren su lista en un DetailPopup (proyectos o actividades segun
la tarjeta); el bloque "Mis actividades" queda fijo. Nuevas listas de proximos
a vencer y para hoy; "Para hoy" deja de contar eliminadas/cancelados.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Base = actividades no eliminadas, no canceladas y de proyectos no cancelados;
el conteo de vencidas usa el mismo criterio (antes incluia eliminadas).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Base = actividades no eliminadas de proyectos no cancelados; el conteo de
pendientes pasa a usar el mismo criterio (antes incluia eliminadas).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Porcentaje de activos sobre el total sin cancelados, "N de M" y lista de
proyectos activos al hacer clic. La lista de detalle pasa a un componente
compartido con "Proyectos atrasados".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
La tarjeta muestra un medidor semicircular (atrasados/activos) con el valor al
centro; al hacer clic, el bloque inferior lista los proyectos atrasados en vez
de mis actividades. Por ahora solo esta tarjeta.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
El listener de "cerrar al hacer scroll" tambien reaccionaba al scroll del
propio panel, impidiendo llegar a las ultimas opciones.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reemplaza el checkbox "Ocultar proyectos 100%" para cubrir tambien "solo 100%"
sin combinaciones contradictorias. Persistido en localStorage; migra el valor
del checkbox anterior.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>