diff --git a/public/admin/asignaciones.php b/public/admin/asignaciones.php index aef4bd6..155ecf7 100644 --- a/public/admin/asignaciones.php +++ b/public/admin/asignaciones.php @@ -10,7 +10,7 @@ require_once BASE_PATH . '/src/Asignacion.php'; require_once BASE_PATH . '/src/CSRF.php'; $auth = new Auth(); -$auth->requireAdmin(); +$auth->requireCoordinador(); $userModel = new User(); $horariosModel = new DiasHorarios(); @@ -75,7 +75,8 @@ $domingoActual->modify('-' . $diaSemana . ' days'); $currentWeekStart = $domingoActual->format('Y-m-d'); $asignacionActual = $asignacionModel->getAsignacionPorSemana($currentWeekStart); -$ayudantes = $userModel->getAyudantesActivos(); +// Para gestión de turnos, incluir ayudantes y coordinadores +$ayudantes = $userModel->getUsuariosGestion(); // Obtener próximos turnos (siguientes 3 semanas) $proximosTurnos = []; diff --git a/public/admin/asignaciones_completo.php b/public/admin/asignaciones_completo.php index 97d4b60..91a9bcc 100755 --- a/public/admin/asignaciones_completo.php +++ b/public/admin/asignaciones_completo.php @@ -10,7 +10,7 @@ require_once BASE_PATH . '/src/Asignacion.php'; require_once BASE_PATH . '/src/CSRF.php'; $auth = new Auth(); -$auth->requireAdmin(); +$auth->requireCoordinador(); $userModel = new User(); $horariosModel = new DiasHorarios(); @@ -95,7 +95,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } } -$ayudantes = $userModel->getAyudantesActivos(); +// Para asignaciones masiva, mostrar todos los ayudantes y coordinadores +$ayudantes = $userModel->getUsuariosGestion(); $horarios = $horariosModel->getActivos(); // Encontrar el domingo actual diff --git a/public/admin/coordinador.php b/public/admin/coordinador.php new file mode 100644 index 0000000..b21dee0 --- /dev/null +++ b/public/admin/coordinador.php @@ -0,0 +1,203 @@ +requireCoordinador(); + +$userModel = new User(); +$horariosModel = new DiasHorarios(); +$asignacionModel = new Asignacion(); + +// Estadísticas básicas +$totalUsuarios = count($userModel->getUsuariosGestion()); +$totalHorarios = count($horariosModel->getActivos()); +$asignacionActual = $asignacionModel->getAsignacionActual(); + +// Obtener orden actual de rotación +$ayudantesOrdenados = $asignacionModel->getAyudantesPorOrden(); + +$currentPage = 'dashboard'; +$pageTitle = 'Panel Coordinador'; +?> + + + + + + Panel Coordinador - Contenedor Ibiza + + + + + + +
+
+
+

🎯 Panel Coordinador

+

Gestión de turnos y ayudantes

+
+ Coordinador +
+ +
+
+
+
+

+

Ayudantes Activos

+
+
+
+
+
+
+

+

Días Configurados

+
+
+
+
+
+
+

+

Orden Rotación

+
+
+
+
+ +
+
+
+
+
📋 Turno Actual
+
+
+ +
+
✅ Esta semana:
+ +
+ +
+
⚠️ Sin asignar
+ No hay ayudante asignado esta semana +
+ + + +
+
+
+ +
+
+
+
👥 Ayudantes
+
+
+
Orden de Rotación:
+
+ $ayudante): ?> + + . + + +
+ + +
+
+
+
+ +
+
+
+
+
🎯 Acciones Rápidas
+
+
+
+
+
+
🔄
+
Generar Turnos
+

Crear próximas semanas automáticamente

+ + Generar + +
+
+
+
+
📄
+
Exportar PDF
+

Descargar turnos en formato PDF

+ + Exportar + +
+
+
+
+
👥
+
Ver Turnos
+

Ver asignaciones actuales

+ + Ver Turnos + +
+
+
+
+
🔧
+
Gestionar
+

Administrar todo

+ + Gestionar + +
+
+
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/public/admin/export-pdf.php b/public/admin/export-pdf.php index 3024251..825dd2d 100644 --- a/public/admin/export-pdf.php +++ b/public/admin/export-pdf.php @@ -18,7 +18,7 @@ $asignacionModel = new Asignacion(); $db = \Database::getInstance()->getConnection(); $totalUsuarios = count($userModel->getAll()); -$totalAyudantes = count($userModel->getAyudantesActivos()); +$totalAyudantes = count($userModel->getUsuariosGestion()); $totalHorarios = count($horariosModel->getAll()); $asignacionActual = $asignacionModel->getAsignacionActual(); diff --git a/public/admin/index.php b/public/admin/index.php index 7f2aca9..6f462fb 100755 --- a/public/admin/index.php +++ b/public/admin/index.php @@ -16,7 +16,7 @@ $horariosModel = new DiasHorarios(); $asignacionModel = new Asignacion(); $totalUsuarios = count($userModel->getAll()); -$totalAyudantes = count($userModel->getAyudantesActivos()); +$totalAyudantes = count($userModel->getUsuariosGestion()); $totalHorarios = count($horariosModel->getAll()); $asignacionActual = $asignacionModel->getAsignacionActual(); diff --git a/src/User.php b/src/User.php index e31ba87..6dac51b 100755 --- a/src/User.php +++ b/src/User.php @@ -132,8 +132,14 @@ class User { return $stmt->fetchAll(); } + public function getUsuariosGestion() { + // Incluye ayudantes y coordinadores para gestión de turnos + $stmt = $this->db->query("SELECT * FROM users WHERE (rol = 'ayudante' OR rol = 'coordinador') AND activo = 1 ORDER BY nombre"); + return $stmt->fetchAll(); + } + public function isValidRole($role) { - return in_array($role, ['admin', 'ayudante']); + return in_array($role, ['admin', 'ayudante', 'coordinador']); } public function hasRole($userId, $role) {