# Changelog Oficial — Admin Edu-Space (UniCABA) Todas las modificaciones notables a este proyecto serán documentadas en este archivo. El formato está basado en [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/) y este proyecto se adhiere a [Semantic Versioning](https://semver.org/lang/es/). --- ## [Unreleased] ### Planificado (Fase 2 del Roadmap MVP) - **Co-docencia en Cátedras:** Asignación de múltiples profesores (titular, adjunto, ayudante) a una misma comisión. - **Matriz de Conflictos:** Detección de solapamiento físico, docente y control de aforo en tiempo real. - **Regla de Restricción Diaria del Alumno:** Validación para impedir cursar dos materias regulares el mismo día, con motor de excepciones para cursos cortos o autorización de Bedelía. - **Libro de Calificaciones (*Gradebook*):** Carga rápida de notas y seguimiento de regularidad. - **Grilla Semanal Drag & Drop:** Asignación visual interactiva para la oficina de Bedelía. --- ## [2.2.0] - 2026-09-19 ### Añadido - **Herramienta de Purga y Reinicio de Datos Académicos (`reset_academic_data`):** - Script CLI `backend/scripts/reset_academic_data.py` con argumentos de limpieza granular (`--all`, `--reservations`, `--classrooms`, `--careers`, `--yes`). - Endpoint de API `POST /api/v1/admin/reset-academic-data` protegido por JWT (rol `admin`) con registro en `AuditLog`. - Panel interactivo "Zona de Reinicio y Purga Académica" en `/admin/google_sheets_import` con checkboxes independientes para reservas, aulas, comisiones, asignaturas y carreras. - Modal modal de confirmación con advertencias de seguridad para prevenir purgas accidentales. - Preservación íntegra de usuarios del sistema, credenciales de acceso, roles RBAC y registros de auditoría. - **Configuración Global Dinámica de Google Sheets:** - Nuevo modelo `SystemSetting` (`backend/app/models/setting.py`) para almacenamiento persistente clave-valor en base de datos. - Endpoints `GET /api/v1/admin/sheets-config` y `POST /api/v1/admin/sheets-config`. - Normalizador de enlaces en `GoogleSheetsImporter` compatible con URLs compartidas de edición (`/spreadsheets/d/.../edit`) o enlaces publicados (`/pub?output=csv`). - Interfaz web con formulario de edición de URL, botón de guardado en caliente, restauración a URL oficial predeterminada y acceso directo a Google Docs. - **Visualización de Asignaturas Reales:** - Tabla de asignaturas recientemente sincronizadas conectada a la base de datos real en lugar de datos de muestra (*mock*). ### Corregido - **Fallo por Timeout en Google Sheets Academic Sync:** - Solucionado el corte prematuro de conexión en el BFF (`frontend/src/services/apiClient.js`), aumentando el timeout base a 25s y el timeout específico de sincronización a 90s (anteriormente limitado a 5s en operaciones que toman ~6.7s). - Eliminado el enmascaramiento silencioso de errores en el BFF, permitiendo reportar fallos reales o éxitos detallados (+carreras, +aulas, +materias, +comisiones, +reservas). --- ## [2.1.0] - 2026-09-19 ### Añadido - **Ficha Detallada de Reserva (`schedule.view_reservation`):** - Implementación en BFF Node.js de la ruta `/schedule/view_reservation` (soportando parámetros `:id`, `?id=` o selección automática del primer registro). - Vistas y controladores para modificar reservas con selectores en cascada (`/schedule/edit_reservation`). - Endpoints de acción rápida en backend y BFF: `POST /schedule/confirm_reservation` y `POST /schedule/cancel_reservation`. - Actualización de enlaces en `today.html`, `list.html`, `dashboard.html` y `view.html` para navegar directamente con el identificador de la reserva (`?id=...`). - **Creación y Asociación de Comisiones a Asignaturas (`admin/commissions_list`):** - Botón destacado `+ Nueva Comisión` en el encabezado y en el estado vacío de la tabla. - Modal interactivo `#modalAddCommission` con selección obligatoria y clara de la **Asignatura / Materia Asociada** (`