feat: Añadir panel especial para coordinadores en ayudante.php

- 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
This commit is contained in:
nickpons666
2026-01-31 01:05:14 -06:00
parent 6a5a1d48ef
commit acc0033e63

View File

@@ -18,6 +18,8 @@ $horariosModel = new DiasHorarios();
$asignacionModel = new Asignacion();
$db = Database::getInstance()->getConnection();
$horarios = $horariosModel->getActivos();
$asignacionActual = $asignacionModel->getAsignacionActual();
@@ -73,8 +75,8 @@ $domingo->modify('-' . (int)$domingo->format('w') . ' days');
</head>
<body>
<?php
// Si es administrador, usar el navbar del admin
if ($auth->isAdmin()) {
// Si es administrador o coordinador, usar el navbar del admin
if ($auth->isAdmin() || $auth->isCoordinador()) {
include BASE_PATH . '/public/partials/navbar.php';
} else {
// Si es ayudante, usar navbar simple
@@ -94,7 +96,7 @@ $domingo->modify('-' . (int)$domingo->format('w') . ' days');
<div class="container mt-4">
<div class="d-flex justify-content-between align-items-center mb-4">
<div>
<?php if ($auth->isAdmin()): ?>
<?php if ($auth->isAdmin() || $auth->isCoordinador()): ?>
<h2 class="mb-1">👥 Vista de Ayudante</h2>
<p class="text-muted mb-0">Viendo la interfaz que ven los ayudantes</p>
<?php else: ?>
@@ -102,7 +104,7 @@ $domingo->modify('-' . (int)$domingo->format('w') . ' days');
<?php endif; ?>
</div>
<div>
<?php if ($auth->isAdmin()): ?>
<?php if ($auth->isAdmin() || $auth->isCoordinador()): ?>
<a href="/admin/asignaciones.php" class="btn btn-outline-secondary btn-sm me-2">
⚙️ Gestionar Turnos
</a>
@@ -113,6 +115,55 @@ $domingo->modify('-' . (int)$domingo->format('w') . ' days');
</div>
</div>
<?php if ($auth->isCoordinador()): ?>
<!-- SECCIÓN ESPECIAL PARA COORDINADORES -->
<div class="card shadow-sm mb-4 border-success">
<div class="card-header bg-success text-white">
<h5 class="mb-0">🎯 Panel de Coordinador</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6 mb-3">
<h6 class="mb-2">⚡ Acciones Rápidas</h6>
<div class="d-grid gap-2">
<a href="/admin/asignaciones.php" class="btn btn-primary btn-sm">
🔄 Gestionar Turnos
</a>
<a href="/admin/usuarios.php" class="btn btn-success btn-sm">
👥 Agregar Ayudante
</a>
<a href="/admin/asignaciones_completo.php#reordenar" class="btn btn-outline-primary btn-sm">
📋 Modificar Orden
</a>
</div>
</div>
<div class="col-md-6 mb-3">
<h6 class="mb-2">📈 Estadísticas</h6>
<div class="row text-center">
<div class="col-6">
<div class="border rounded p-2 mb-2">
<div class="h4 mb-0 text-primary"><?= count($ayudantes) ?></div>
<small class="text-muted">Ayudantes</small>
</div>
</div>
<div class="col-6">
<div class="border rounded p-2 mb-2">
<div class="h4 mb-0 text-success"><?= count($misAsignacionesFuturas) ?></div>
<small class="text-muted">Tus turnos</small>
</div>
</div>
</div>
<div class="text-center">
<a href="/export-pdf.php" target="_blank" class="btn btn-danger btn-sm">
📄 Exportar PDF
</a>
</div>
</div>
</div>
</div>
</div>
<?php endif; ?>
<?php
$hoy = new DateTime();
$diaSemana = (int)$hoy->format('w');
@@ -129,25 +180,58 @@ $domingo->modify('-' . (int)$domingo->format('w') . ' days');
Del <?= date('d/m/y', strtotime($asignacionEstaSemana['semana_inicio'])) ?>
al <?= date('d/m/y', strtotime($asignacionEstaSemana['semana_fin'])) ?>
</div>
<?php elseif ($asignacionEstaSemana): ?>
<div class="alert alert-secondary mb-4">
<strong>Turno esta semana:</strong> <?= htmlspecialchars($asignacionEstaSemana['nombre']) ?><br>
<?php if (!empty($misAsignacionesFuturas)): ?>
Tu proximo turno: <?= date('d/m/y', strtotime($misAsignacionesFuturas[0]['semana']['inicio'])) ?>
al <?= date('d/m/y', strtotime($misAsignacionesFuturas[0]['semana']['fin'])) ?>
<?php else: ?>
Tu proximo turno sera en las proximas semanas.
<?php endif; ?>
</div>
<?php elseif ($asignacionEstaSemana): ?>
<div class="alert alert-secondary mb-4">
<div class="d-flex justify-content-between align-items-start">
<div>
<strong>Turno esta semana:</strong> <?= htmlspecialchars($asignacionEstaSemana['nombre']) ?><br>
<?php if (!empty($misAsignacionesFuturas)): ?>
Tu proximo turno: <?= date('d/m/y', strtotime($misAsignacionesFuturas[0]['semana']['inicio'])) ?>
al <?= date('d/m/y', strtotime($misAsignacionesFuturas[0]['semana']['fin'])) ?>
<?php else: ?>
Tu proximo turno sera en las proximas semanas.
<?php endif; ?>
</div>
<?php if ($auth->isCoordinador()): ?>
<div class="text-end">
<a href="/admin/asignaciones.php" class="btn btn-sm btn-outline-primary">
🔄 Cambiar
</a>
</div>
<?php endif; ?>
</div>
</div>
<?php elseif (!empty($misAsignacionesFuturas)): ?>
<div class="alert alert-info mb-4">
<strong>Proximo turno:</strong><br>
Del <?= date('d/m/y', strtotime($misAsignacionesFuturas[0]['semana']['inicio'])) ?>
al <?= date('d/m/y', strtotime($misAsignacionesFuturas[0]['semana']['fin'])) ?>
<div class="d-flex justify-content-between align-items-start">
<div>
<strong>Proximo turno:</strong><br>
Del <?= date('d/m/y', strtotime($misAsignacionesFuturas[0]['semana']['inicio'])) ?>
al <?= date('d/m/y', strtotime($misAsignacionesFuturas[0]['semana']['fin'])) ?>
</div>
<?php if ($auth->isCoordinador()): ?>
<div class="text-end">
<a href="/admin/asignaciones_completo.php" class="btn btn-sm btn-outline-primary">
📋 Gestionar
</a>
</div>
<?php endif; ?>
</div>
</div>
<?php else: ?>
<div class="alert alert-warning mb-4">
No hay turnos asignados para las proximas semanas.
<div class="d-flex justify-content-between align-items-start">
<div>
No hay turnos asignados para las proximas semanas.
</div>
<?php if ($auth->isCoordinador()): ?>
<div class="text-end">
<a href="/admin/asignaciones.php" class="btn btn-sm btn-success">
🚀 Generar Turnos
</a>
</div>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
@@ -265,6 +349,9 @@ $domingo->modify('-' . (int)$domingo->format('w') . ' days');
<th class="text-center">Fecha 2</th>
<th class="text-center">Fecha 3</th>
<th class="text-center">Fecha 4</th>
<?php if ($auth->isCoordinador()): ?>
<th class="text-center">Acciones</th>
<?php endif; ?>
</tr>
</thead>
<tbody>
@@ -299,6 +386,13 @@ $domingo->modify('-' . (int)$domingo->format('w') . ' days');
<?php endif; ?>
</td>
<?php endfor; ?>
<?php if ($auth->isCoordinador()): ?>
<td class="text-center">
<a href="/admin/asignaciones_completo.php" class="btn btn-sm btn-outline-primary">
🔄 Gestionar
</a>
</td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</tbody>
@@ -306,6 +400,39 @@ $domingo->modify('-' . (int)$domingo->format('w') . ' days');
</div>
</div>
</div>
<?php if ($auth->isCoordinador()): ?>
<!-- BARRA DE ACCIONES PARA COORDINADORES -->
<div class="card mt-4 shadow-sm border-success">
<div class="card-header bg-success text-white">
<h5 class="mb-0">🎯 Acciones de Coordinador</h5>
</div>
<div class="card-body">
<div class="row text-center">
<div class="col-md-3 mb-3">
<a href="/admin/coordinador.php" class="btn btn-success w-100">
📊 Mi Panel
</a>
</div>
<div class="col-md-3 mb-3">
<a href="/admin/asignaciones.php" class="btn btn-primary w-100">
🔄 Gestionar Turnos
</a>
</div>
<div class="col-md-3 mb-3">
<a href="/admin/usuarios.php" class="btn btn-outline-success w-100">
👥 Agregar Ayudante
</a>
</div>
<div class="col-md-3 mb-3">
<a href="/export-pdf.php" target="_blank" class="btn btn-danger w-100">
📄 Exportar PDF
</a>
</div>
</div>
</div>
</div>
<?php endif; ?>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>