Commit Graph

147 Commits

Author SHA1 Message Date
cd16b3cb4f Implementar conversación con HOOKS #111 2026-02-17 15:47:32 -06:00
02c415a91d Fix #114: Refactor ContenidoTemático: persistencia inmediata y normalización de datos
- Elimina botón "Guardar": persistencia automática al pulsar "Listo", al confirmar eliminación y al terminar de editar nombre de unidad.
- Añade mapper (mapContenidoTematicoFromDb) y serializador (serializeUnidadesToApi) para normalizar contenido_tematico <-> Array<ContenidoApi>.
- Conecta persistencia a useUpdateSubjectContenido: hace update directo de asignaturas.contenido_tematico en la BDD.
- Manejo de caché: setQueryData con merge y invalidación de keys centralizadas (qk.planAsignaturas, qk.planHistorial, qk.asignaturaHistorial) para evitar caché desactualizada o pérdida de relaciones.
- UX/estabilidad: identificadores consistentes, expansión inicial, y persistencia inmediata en puntos clave (añadir, editar, eliminar).
2026-02-17 14:17:09 -06:00
7d45eb4dfa fix #114: refactorización de AsignaturaDetailPage y hooks relacionados: persistencia, caché y tipado
- Persistencia de cambios de "Datos generales" usando updateAsignatura.mutate.
- Corregido el manejo de caché: uso de qk centralizada y merge en setQueryData para no perder relaciones.
- Corregidos los tipos devueltos por subjects_get.
- Evitado estado inválido tras guardar (merge local + actualización de cache).

Verificar: editar → guardar → volver al plan → reingresar muestra datos actualizados sin parpadeos.
2026-02-17 13:20:49 -06:00
54b22b7adf se arregló el estilo visual y comportamiento del grid del mapa curricular
fix #108: ahora se utiliza un único grid para todo el mapa curricular. de esta manera el espaciado se mantiene consistente
2026-02-13 14:13:22 -06:00
d4a034c2fc Merge branch 'main' of https://github.lci.ulsa.mx/Guillermo.Arrieta/acad-ia-2 2026-02-13 13:56:33 -06:00
56d23f1aa5 Se agrega componente 2026-02-13 13:56:30 -06:00
2624b0694d spinners, creación manual de asignatura, actualización de asignaturas generadas por sugerencias
fix #29:
-  Se agregaron spinners en la creación con IA de un plan o una asignatura
- Se añadió la creación manual de asignaturas
- Al generar asignaturas a partir de sugerencias, el badge de estado de la asignatura dice 'Generando' y muestra una animación tipo respiro para indicar que está siendo generada. Adicionalmente, se actualiza automáticamente la UI una vez que acabó de ser generada
2026-02-13 12:44:05 -06:00
5f8d758f67 Que quede centrado con un ancho máximo de 1 tercio de pantalla SIN QUE SEA UN MODAL
fix #98
2026-02-13 10:27:03 -06:00
1e4a58e4da Que solo te autocomplete el título del campo y te quite los dos puntos
fix #97
2026-02-13 09:04:19 -06:00
c280faef22 feat: add 'vaul' dependency and update database types for conversation management 2026-02-12 17:26:47 -06:00
d6c567195a Generación existosa de múltiples asignaturas con IA
TODO: actualización automática de el estado de las asignaturas generadas
2026-02-12 16:17:48 -06:00
9c588cfd8f PasoResumen muestra resumen antes de crear múltiples asignaturas 2026-02-12 16:15:11 -06:00
46d8d6142e feat: integrate Radix UI Accordion component and enhance subject wizard
- Added Radix UI Accordion component for better UI organization in PasoDetallesPanel.
- Implemented structure selection and subject suggestions management in the wizard.
- Updated subject API to initialize new subjects with null values for structure and cycle.
- Modified state management in useNuevaAsignaturaWizard to include estructuraId.
- Adjusted types for suggested subjects to include line and cycle information.
2026-02-12 16:15:11 -06:00
07d08e1b57 Add AI progress loader and enhance suggestion generation logic
- Introduced AIProgressLoader component to display loading progress and messages during suggestion generation.
- Updated PasoSugerenciasForm to manage loading state and display tooltip for preserved suggestions.
- Adjusted suggestion limits and removed unused ciclo input from state.
2026-02-12 16:15:11 -06:00
ded54c18dd Se mandan generar sugerencias de asignaturas junto con el id del plan, el enfoque que se le quiere dar, la cantidad de sugerencias, y las sugerencias conservadas 2026-02-12 16:15:10 -06:00
89f264bf5d Primera version funcional de sugerencias 2026-02-12 16:15:10 -06:00
675c76db74 wip 2026-02-12 16:15:10 -06:00
d74807c84e wip 2026-02-12 16:15:10 -06:00
2f9e779bce Se corrigen incidencias
fix #100
fix #101
2026-02-12 15:55:14 -06:00
0c57bdfc38 Que haga la cuenta de cuántas referencias llevas
fix #99
2026-02-12 14:14:02 -06:00
9102e756cb Se agrega paginacion a historial 2026-02-12 10:55:19 -06:00
2ec222694d Se agrega editar por campos en ia y archivar chats 2026-02-12 10:01:27 -06:00
d9a6852f43 Se agrega drawer de referencias de ia y panel de historial de chats 2026-02-11 10:22:14 -06:00
ba188329dc Se agrega avance de historial de chat y referencias de la ia 2026-02-10 14:33:04 -06:00
3afce0de77 Corregir que se duplica el campo
fix #90
2026-02-10 11:34:58 -06:00
0788002c9b No todo debe ser editable #47 2026-02-10 10:10:40 -06:00
c7c631a701 Botón de Exportar Mapa Curricular fix #27 2026-02-10 09:06:57 -06:00
9ba94f2c2c No tiene sentido este botón de guardar
fix #87
2026-02-10 08:35:46 -06:00
846e3abf74 Propuesta de placeholders para descripción del enfoque académico e instrucciones adicionales para la IA. fix #23 2026-02-09 19:18:04 +00:00
417dec8c9b Merge branch 'main' into issue/72-que-no-sean-inputs 2026-02-06 22:01:38 +00:00
1caa5bef06 Merge branch 'main' into issue/80-deshacerse-de-todos-estos-query-params-de-la-url 2026-02-06 22:01:11 +00:00
581dc566bc Que no sean INPUTS
fix #72
2026-02-06 15:54:40 -06:00
31a47934e5 Se corrige limite de 200 y wrap en titulo validaciones en modal de adeicion de matria en mapa 2026-02-06 14:42:38 -06:00
958b558111 Se limitaron el número de caracteres y de digitos en los inputs de los wizards 2026-02-06 12:52:54 -06:00
1f78284fb6 Orden de listado de planes issue #71
Fix #71: ahora los planes se listan por orden de creación descendente (los más recientes primero)
2026-02-06 11:20:13 -06:00
b45aa4b59c Merge branch 'main' into issue/80-deshacerse-de-todos-estos-query-params-de-la-url 2026-02-06 10:31:58 -06:00
09d8392a28 Deshacerse de todos estos query params de la URL
fix #80
2026-02-06 10:29:08 -06:00
43aed3fb47 Merge branch 'main' into issue/53-guardado-automtico 2026-02-06 13:34:31 +00:00
a6a94fa42b WIP: Guardado automático
fix #53
fix #68
2026-02-05 14:09:55 -06:00
b1a233fa8c Feat: generación IA de asignaturas, navegación con confetti y ajustes de API
closes #63:
- Añadido AIGenerateSubjectInput y nueva implementación ai_generate_subject que envía FormData (soporta archivosAdjuntos) al Edge Function.
- Creado hook useGenerateSubjectAI (mutation) y usado en WizardControls de asignaturas para generar la asignatura vía IA.
- WizardControls (asignaturas) construye el payload IA, invoca la mutación y navega al detalle de la asignatura creada pasando state.showConfetti para lanzar confetti.
- Ajustes en subjects.api.ts (nombres de endpoint, tipos y envío de datos) y sincronización de tipos en WizardControls (plan y campos básicos).
- Ruta de detalle de asignatura ($asignaturaId) ahora lee location.state.showConfetti y dispara lateralConfetti al entrar.
- Eliminado el prop onCreate del modal de nueva asignatura (la creación IA se gestiona internamente).
2026-02-05 13:41:10 -06:00
f00fabeac5 Fix #63: mostrar mensaje real de error de Edge Function en UI
- Mejorar invokeEdge para parsear el body JSON de errores HTTP de las Edge Functions y extraer un message humano (soporta { error: { message } }, { error: "..." } y { message: "..." }).
- EdgeFunctionError ahora incluye status y details; se manejan también FunctionsRelayError y FunctionsFetchError con mensajes más descriptivos.
- Ajustes en el front: WizardControls muestra el mensaje real del error (no el genérico "Edge Function returned a non-2xx status code"), y se corrige navegación/logging tras crear plan IA (uso de `plan` en vez de `data` y `navigate` a `/planes/{plan.id}`).
- Actualización de types/API: renombrados campos en AIGeneratePlanInput para alinear nombres (descripcionEnfoqueAcademico, instruccionesAdicionalesIA).
2026-02-05 13:41:09 -06:00
c82fac52f7 Refactor: unifica wizards con WizardLayout/WizardResponsiveHeader y convierte asignaturas en layout con Outlet
- Se introdujo un layout genérico de wizard (WizardLayout) con headerSlot/footerSlot y se migraron los modales de Nuevo Plan y Nueva Asignatura a esta estructura usando defineStepper.
- Se creó y reutilizó WizardResponsiveHeader para un encabezado responsivo consistente (progreso en móvil y navegación en escritorio) en ambos wizards.
- Se homologó WizardControls del wizard de asignaturas para alinearlo al patrón del wizard de planes (props onPrev/onNext, flags de disable, manejo de error/loading y creación).
- Se mejoró la captura de datos en el wizard de asignatura: créditos como flotante con 2 decimales, placeholders/estilos en inputs/selects y uso de catálogo real de estructuras vía useSubjectEstructuras con qk.estructurasAsignatura.
- Se reorganizó la sección de asignaturas del detalle del plan: el contenido del antiguo index se movió a asignaturas.tsx como layout y se agregó <Outlet />; navegación a “nueva asignatura” ajustada al path correcto.
2026-02-05 13:41:09 -06:00
db5465032e Guardado automático
fix #53
2026-02-04 16:05:05 -06:00
0e9648d61a En el mapa curricular editar los nombres de las líneas curriculares fix #57 2026-02-04 14:29:46 -06:00
bd8bef142a Merge remote-tracking branch 'origin/issue/45-integrar-el-wizard-de-creacin-de-materia' into issue/42-que-tenga-persistencia-el-plan-de-estudios 2026-02-04 07:29:35 -06:00
261dec7fa9 Se agrega persistencia en tab de datos y mapa curricular
fix #42
fix #54
2026-02-03 16:05:05 -06:00
1acb18711f Reintegración con main. Corrección de errores de fetch. Sincronización con la base de datos remota 2026-02-03 15:10:09 -06:00
f046bdcc04 Refactorización de wizards para consistencia, reusabilidad y mantenibilidad 2026-02-03 13:13:44 -06:00
12c572a442 Reorganización de archivos y enlace a wizard de creación de asignatura 2026-02-03 13:13:44 -06:00
64d9aa336f Se agrega persistencia a planes en datos, se arregla bug de nombre de claves en asignaturas, se cambia en historial clves por los titulos corresppndientes 2026-01-30 15:51:43 -06:00