feat(sync): add academic data reset tool, configurable sheets URL and fix sync timeout
This commit is contained in:
@@ -15,6 +15,29 @@ El formato está basado en [Keep a Changelog](https://keepachangelog.com/es-ES/1
|
||||
|
||||
---
|
||||
|
||||
## [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`):**
|
||||
|
||||
Reference in New Issue
Block a user