Files
contenedor_ibiza/public/admin/coordinador.php
nickpons666 8bd34c8ddb fix: Incluir coordinadores en todas las listas de gestión
- 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
2026-01-31 01:18:28 -06:00

203 lines
8.7 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
if (!defined('BASE_PATH')) {
define('BASE_PATH', dirname(__DIR__, 2));
}
require_once BASE_PATH . '/config/config.php';
require_once BASE_PATH . '/src/Auth.php';
require_once BASE_PATH . '/src/User.php';
require_once BASE_PATH . '/src/DiasHorarios.php';
require_once BASE_PATH . '/src/Asignacion.php';
$auth = new Auth();
$auth->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';
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Panel Coordinador - Contenedor Ibiza</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
.stat-card {
transition: transform 0.2s;
}
.stat-card:hover {
transform: translateY(-2px);
}
.rol-badge {
font-size: 0.8em;
}
</style>
</head>
<body>
<?php include BASE_PATH . '/public/partials/navbar.php'; ?>
<div class="container mt-4">
<div class="d-flex justify-content-between align-items-center mb-4">
<div>
<h2 class="mb-1">🎯 Panel Coordinador</h2>
<p class="text-muted mb-0">Gestión de turnos y ayudantes</p>
</div>
<span class="badge bg-info rol-badge">Coordinador</span>
</div>
<div class="row mb-4">
<div class="col-md-4 mb-3">
<div class="card stat-card shadow-sm border-primary">
<div class="card-body text-center">
<h3 class="text-primary"><?= $totalUsuarios ?></h3>
<p class="mb-0">Ayudantes Activos</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card stat-card shadow-sm border-success">
<div class="card-body text-center">
<h3 class="text-success"><?= $totalHorarios ?></h3>
<p class="mb-0">Días Configurados</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card stat-card shadow-sm border-warning">
<div class="card-body text-center">
<h3 class="text-warning"><?= count($ayudantesOrdenados) ?></h3>
<p class="mb-0">Orden Rotación</p>
</div>
</div>
</div>
</div>
<div class="row mb-4">
<div class="col-md-6">
<div class="card shadow-sm">
<div class="card-header bg-primary text-white">
<h5 class="mb-0">📋 Turno Actual</h5>
</div>
<div class="card-body">
<?php if ($asignacionActual): ?>
<div class="alert alert-success mb-3">
<h6 class="mb-1">✅ Esta semana:</h6>
<strong><?= htmlspecialchars($asignacionActual['nombre']) ?></strong>
</div>
<?php else: ?>
<div class="alert alert-warning mb-3">
<h6 class="mb-1">⚠️ Sin asignar</h6>
<span>No hay ayudante asignado esta semana</span>
</div>
<?php endif; ?>
<div class="d-grid gap-2">
<a href="/admin/asignaciones.php" class="btn btn-primary">
🔄 Gestionar Turnos
</a>
<a href="/ayudante.php" class="btn btn-outline-primary">
👥 Vista Ayudante
</a>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card shadow-sm">
<div class="card-header bg-success text-white">
<h5 class="mb-0">👥 Ayudantes</h5>
</div>
<div class="card-body">
<h6 class="mb-3">Orden de Rotación:</h6>
<div class="d-flex flex-wrap gap-2 mb-3">
<?php foreach ($ayudantesOrdenados as $index => $ayudante): ?>
<span class="badge bg-secondary">
<?= ($index + 1) ?>. <?= htmlspecialchars($ayudante['nombre']) ?>
</span>
<?php endforeach; ?>
</div>
<div class="d-grid gap-2">
<a href="/admin/usuarios.php" class="btn btn-success">
Agregar Ayudante
</a>
<a href="/admin/asignaciones_completo.php#reordenar" class="btn btn-outline-success">
🔄 Modificar Orden
</a>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="card shadow-sm">
<div class="card-header bg-info text-white">
<h5 class="mb-0">🎯 Acciones Rápidas</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-3 mb-3">
<div class="text-center p-3">
<div class="mb-3">🔄</div>
<h6>Generar Turnos</h6>
<p class="text-muted small">Crear próximas semanas automáticamente</p>
<a href="/admin/asignaciones_completo.php" class="btn btn-sm btn-primary">
Generar
</a>
</div>
</div>
<div class="col-md-3 mb-3">
<div class="text-center p-3">
<div class="mb-3">📄</div>
<h6>Exportar PDF</h6>
<p class="text-muted small">Descargar turnos en formato PDF</p>
<a href="/export-pdf.php" target="_blank" class="btn btn-sm btn-danger">
Exportar
</a>
</div>
</div>
<div class="col-md-3 mb-3">
<div class="text-center p-3">
<div class="mb-3">👥</div>
<h6>Ver Turnos</h6>
<p class="text-muted small">Ver asignaciones actuales</p>
<a href="/ayudante.php" class="btn btn-sm btn-info">
Ver Turnos
</a>
</div>
</div>
<div class="col-md-3 mb-3">
<div class="text-center p-3">
<div class="mb-3">🔧</div>
<h6>Gestionar</h6>
<p class="text-muted small">Administrar todo</p>
<a href="/admin/asignaciones_completo.php" class="btn btn-sm btn-secondary">
Gestionar
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>