feat: acople de schedule.view_reservation al BFF y creacion/asociacion de comisiones a materias
This commit is contained in:
@@ -72,3 +72,29 @@ Se ejecutó la suite de verificación automatizada:
|
||||
- 643 eventos en calendario (388 virtuales identificados con `#6366F1` y enlaces activos).
|
||||
4. **Vistas Principales**:
|
||||
- 11/11 rutas pasaron con código 200 sin errores de plantilla ni excepciones de servidor.
|
||||
|
||||
---
|
||||
|
||||
## 4. Acople de `schedule.view_reservation` al BFF Node.js y Gestión de Comisiones
|
||||
|
||||
### A. Vista Detallada de Reserva (`schedule.view_reservation`)
|
||||
- **Backend API (`/api/v1/reservations/<id>`)**:
|
||||
- Enriquecimiento del payload serializado para incluir objetos relacionales completos: `classroom` (código, edificio, piso, capacidad, descripción, modalidad virtual), `commission` (código, código compuesto, materia, cuatrimestre, año, cupos), `user` (docente, nombre, apellido, email), `duration`, `effective_virtual_link` y `can_be_cancelled`.
|
||||
- Incorporación de endpoints de acción directa `POST /api/v1/reservations/<id>/confirm` y `POST /api/v1/reservations/<id>/cancel`.
|
||||
- **Node.js BFF (`frontend/src/routes/schedule.js`)**:
|
||||
- Implementación de `handleViewReservation` con soporte para `/view_reservation`, `/view_reservation/:id`, `/view/:id`, y `/reservation/:id/view`.
|
||||
- Implementación de `handleEditReservation` (GET & POST), `handleConfirmReservation` y `handleCancelReservation`.
|
||||
- Actualización de plantillas (`view.html`, `today.html`, `list.html`, `dashboard.html`) para enlazar directamente las fichas pasando el ID de la reserva.
|
||||
|
||||
### B. Creación de Comisiones y Asociación con Materias (`/admin/commissions_list`)
|
||||
- **Modal y Acción en Interfaz**:
|
||||
- Incorporación de botón destacado `+ Nueva Comisión` en el encabezado y en el estado vacío de la tabla.
|
||||
- Implementación de modal interactivo `#modalAddCommission`:
|
||||
- Selector obligatorio de **Asignatura / Materia Asociada** (`subject_id`), mostrando código, nombre y carrera.
|
||||
- Campos de código de comisión, cuatrimestre, año lectivo, turno, docente a cargo, cupo máximo y días/horarios.
|
||||
- Generación y configuración de enlace a aula virtual (Google Meet institucional).
|
||||
- Alerta de confirmación visual (`?created=1`) al registrar y vincular la comisión exitosamente.
|
||||
- **Backend API (`POST /api/v1/admin/commissions`)**:
|
||||
- Validación de existencia de la asignatura vinculada y resolución inteligente de duplicados (`subject_id`, `code`, `semester`, `year`).
|
||||
- Auto-generación de enlaces seguros de Google Meet en caso de no especificarse enlace personalizado.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user