- Crear nuevo rol Coordinador con permisos específicos de gestión
- Modificar Auth.php para soportar isCoordinador() y requireCoordinador()
- Actualizar User.php con método getUsuariosGestion() para incluir coordinadores
- Corregir Asignacion.php para que getAyudantesPorOrden() incluya coordinadores
- Crear panel especial para coordinadores en coordinador.php
- Implementar restricciones granulares en usuarios.php
• Coordinadores no pueden ver/editar/desactivar administradores
• No pueden crear otros administradores (se convierte a coordinador)
• Solo pueden gestionar ayudantes y otros coordinadores
- Actualizar navbar para mostrar rol específico con badges
- Mejorar ayudante.php para que coordinadores puedan usar navbar completo
- Añadir secciones especiales de gestión para coordinadores
- Actualizar todos los PDFs y bot de Telegram para incluir coordinadores
- Mantener retrocompatibilidad con usuarios y administradores existentes
Permisos Coordinador:
✅ Ver/editar usuarios y ayudantes
✅ Gestionar turnos y orden de rotación
✅ Generar turnos automáticamente
✅ Exportar PDFs y usar bot de Telegram
❌ Acceder a configuración general, logs, webhook
❌ Administrar otros administradores
- Crear método getUsuariosGestion() que incluye ayudantes y coordinadores
- Actualizar asignaciones_completo.php para mostrar coordinadores
- Actualizar todas las páginas de gestión para usar nuevo método
- Corregir que coordinadores aparezcan en asignaciones masivas
- Mantener consistencia en todos los módulos de administración
- Añadir sección especial para coordinadores con estadísticas y acciones rápidas
- Integrar botones de gestión directa en todas las secciones de turnos
- Permitir acceso coordinador sin redirección
- Mostrar acciones específicas según rol (admin vs coordinador vs ayudante)
- Añadir barra final de acciones para coordinadores
- Crear versión ultra simple de admin/asignaciones.php con solo funcionalidades esenciales
- Mover asignaciones complejas a asignaciones_completo.php para acceso avanzado
- Modificar ayudante.php para permitir acceso a administradores sin redirigir
- Añadir detección automática: usuarios ven navbar simple, admins ven navbar completo
- Eliminar archivo duplicado vista-ayudante.php para evitar mantener código duplicado
- Corregir rutas BASE_PATH para compatibilidad entre archivos en /admin/ y /public/
- Añadir enlace 👥 Vista Ayudante en navbar de admin
- Mejorar experiencia de usuario con diseño limpio y minimalista
- Cambiar getAyudantesActivos() por getAyudantesPorOrden() en todos los PDFs y bot
- Añadir tabla 'Turnos de Ayudantes' en ambos PDFs (ayudante y admin)
- Mostrar 4 próximas fechas para cada ayudante en orden correcto
- En PDF de ayudante: resaltar fila del usuario con badge 'Tu'
- Corregir sendPDF() y sendPDFGeneral() en bot de Telegram
- Asegurar consistencia: Ana → Esperanza → Mary → Bety → Mariela
- Sincronizar completamente web, PDFs y bot con nuevo orden de rotación
- Cambiar getAyudantesActivos() por getAyudantesPorOrden() para mostrar orden correcto
- Añadir columna 'Ayudante' en tabla de horarios para mostrar quién está asignado cada semana
- Mostrar badges con nombres de ayudantes asignados (verde para usuario actual, gris para otros)
- Añadir badge 'Tú' para identificar fácilmente al usuario actual
- Mejorar visualización de asignaciones en tabla semanal
- Añadir jQuery para resolver error 'jQuery is not defined'
- Corregir variable $db indefinida en reordenamiento de rotación
- Añadir método getDb() a clase Asignacion para acceso a base de datos
- Implementar procesamiento correcto de acción 'rotacion_automatica'
- Actualizar inputs ocultos al reordenar elementos visuales
- Añadir redirección para recargar datos actualizados después de guardar orden
- Mejorar manejo de mensajes de éxito/errores en generación automática
Se refactoriza toda la comunicación con la API de Telegram para solucionar un problema de latencia severa en el entorno Docker. El problema era causado por un retraso en la resolución de red.
- Se mejora la función en para forzar el uso de IPv4, añadir timeouts y soportar métodos GET/POST.
- Se centraliza la lógica de la API en la clase , añadiendo los métodos , y .
- Se modifica para que utilice los nuevos métodos centralizados, eliminando código cURL duplicado y aplicando la solución de red.
- Se mantiene la instrumentación en para futuros diagnósticos, según lo solicitado.
- Agregada libreria Dompdf para generar PDFs
- Creada clase PDFGenerator con metodos reutilizables
- Pagina de exportacion para ayudantes (mis-turnos.pdf)
- Pagina de exportacion para admin (reporte-admin.pdf)
- Boton Exportar PDF en pagina de ayudantes y admin
- Corregido bug en getAsignacionActual() para usar domingo como inicio de semana
- Corregido warning de session_save_path/session_name al iniciar sesion
- CSRF ahora usa Session::init() para configuracion correcta de sesion
- Agregada pagina independiente para cambiar contraseña de ayudantes
- Boton Cambiar Contraseña en navbar de pagina de ayudantes
- Mejorada disposicion de tablas en pagina de asignaciones
- Agregado sistema de protección CSRF con tokens
- Creada clase Session para gestión centralizada de sesiones
- Mejorado manejo de errores en Database (sin die())
- Refactorizado Auth para usar nueva clase Session
- Agregada validación CSRF a formularios de login y admin
- Agregada validación de roles en modelo User
- Mejorada vista de ayudante con tabla de horarios por semana
- Agregada tabla de Turnos de Ayudantes con fechas en columnas