From efab8eb2e4a9bf991c596e6d45cf2f0e37b898ed Mon Sep 17 00:00:00 2001 From: Guillermo Arrieta Medina Date: Fri, 30 Jan 2026 13:21:11 -0600 Subject: [PATCH] =?UTF-8?q?Colocar=20el=20nombre=20de=20la=20Facultad/Carr?= =?UTF-8?q?era=20en=20el=20Resumen=20de=20la=20creaci=C3=B3n=20de=20los=20?= =?UTF-8?q?planes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix #56: Ya se muestra el nombre de la facultad y de la carrera. --- .../PasoBasicosForm/PasoBasicosForm.tsx | 31 +++++++++++++------ .../planes/wizard/PasoResumenCard.tsx | 4 +-- .../planes/wizard/WizardControls.tsx | 6 ++-- .../planes/nuevo/hooks/useNuevoPlanWizard.ts | 8 ++--- src/features/planes/nuevo/types.ts | 10 ++++-- 5 files changed, 39 insertions(+), 20 deletions(-) diff --git a/src/components/planes/wizard/PasoBasicosForm/PasoBasicosForm.tsx b/src/components/planes/wizard/PasoBasicosForm/PasoBasicosForm.tsx index 620bb5d..c731f48 100644 --- a/src/components/planes/wizard/PasoBasicosForm/PasoBasicosForm.tsx +++ b/src/components/planes/wizard/PasoBasicosForm/PasoBasicosForm.tsx @@ -34,7 +34,7 @@ export function PasoBasicosForm({ const estructurasPlanList = catalogos?.estructurasPlan ?? [] const filteredCarreras = rawCarreras.filter((c: any) => { - const facId = wizard.datosBasicos.facultadId + const facId = wizard.datosBasicos.facultad.id if (!facId) return true // soportar ambos shapes: `facultad_id` (BD) o `facultadId` (local) return c.facultad_id ? c.facultad_id === facId : c.facultadId === facId @@ -68,15 +68,20 @@ export function PasoBasicosForm({
onChange( (w): NewPlanWizardState => ({ ...w, - datosBasicos: { ...w.datosBasicos, carreraId: value }, + datosBasicos: { + ...w.datosBasicos, + carrera: { + id: value, + nombre: + filteredCarreras.find((c) => c.id === value)?.nombre || + '', + }, + }, }), ) } - disabled={!wizard.datosBasicos.facultadId} + disabled={!wizard.datosBasicos.facultad.id} > span]:block! [&>span]:truncate!', - !wizard.datosBasicos.carreraId + !wizard.datosBasicos.carrera.id ? 'text-muted-foreground font-normal italic opacity-70' // Es Placeholder : 'font-medium not-italic', // Tiene Valor (Medium) )} diff --git a/src/components/planes/wizard/PasoResumenCard.tsx b/src/components/planes/wizard/PasoResumenCard.tsx index 1fc3038..0a3396d 100644 --- a/src/components/planes/wizard/PasoResumenCard.tsx +++ b/src/components/planes/wizard/PasoResumenCard.tsx @@ -45,8 +45,8 @@ export function PasoResumenCard({ wizard }: { wizard: NewPlanWizardState }) { Facultad/Carrera:{' '} - {wizard.datosBasicos.facultadId || '—'} /{' '} - {wizard.datosBasicos.carreraId || '—'} + {wizard.datosBasicos.facultad.nombre || '—'} /{' '} + {wizard.datosBasicos.carrera.nombre || '—'}
diff --git a/src/components/planes/wizard/WizardControls.tsx b/src/components/planes/wizard/WizardControls.tsx index d83ac36..35f5419 100644 --- a/src/components/planes/wizard/WizardControls.tsx +++ b/src/components/planes/wizard/WizardControls.tsx @@ -57,8 +57,8 @@ export function WizardControls({ const aiInput = { datosBasicos: { nombrePlan: wizard.datosBasicos.nombrePlan, - carreraId: wizard.datosBasicos.carreraId, - facultadId: wizard.datosBasicos.facultadId || undefined, + carreraId: wizard.datosBasicos.carrera.id || undefined, + facultadId: wizard.datosBasicos.facultad.id || undefined, nivel: wizard.datosBasicos.nivel as string, tipoCiclo: tipoCicloSafe, numCiclos: numCiclosSafe, @@ -90,7 +90,7 @@ export function WizardControls({ if (wizard.tipoOrigen === 'MANUAL') { // Crear plan vacío manualmente usando el hook const plan = await createPlanManual.mutateAsync({ - carreraId: wizard.datosBasicos.carreraId, + carreraId: wizard.datosBasicos.carrera.id, estructuraId: wizard.datosBasicos.estructuraPlanId as string, nombre: wizard.datosBasicos.nombrePlan, nivel: wizard.datosBasicos.nivel as NivelPlanEstudio, diff --git a/src/features/planes/nuevo/hooks/useNuevoPlanWizard.ts b/src/features/planes/nuevo/hooks/useNuevoPlanWizard.ts index e409464..fd8e656 100644 --- a/src/features/planes/nuevo/hooks/useNuevoPlanWizard.ts +++ b/src/features/planes/nuevo/hooks/useNuevoPlanWizard.ts @@ -8,8 +8,8 @@ export function useNuevoPlanWizard() { tipoOrigen: null, datosBasicos: { nombrePlan: '', - carreraId: '', - facultadId: '', + facultad: { id: '', nombre: '' }, + carrera: { id: '', nombre: '' }, nivel: '', tipoCiclo: '', numCiclos: undefined, @@ -53,8 +53,8 @@ export function useNuevoPlanWizard() { const canContinueDesdeBasicos = !!wizard.datosBasicos.nombrePlan && - !!wizard.datosBasicos.carreraId && - !!wizard.datosBasicos.facultadId && + !!wizard.datosBasicos.carrera.id && + !!wizard.datosBasicos.facultad.id && !!wizard.datosBasicos.nivel && wizard.datosBasicos.numCiclos !== undefined && wizard.datosBasicos.numCiclos > 0 && diff --git a/src/features/planes/nuevo/types.ts b/src/features/planes/nuevo/types.ts index 5af5db6..ed68f8a 100644 --- a/src/features/planes/nuevo/types.ts +++ b/src/features/planes/nuevo/types.ts @@ -19,8 +19,14 @@ export type NewPlanWizardState = { tipoOrigen: TipoOrigen | null datosBasicos: { nombrePlan: string - carreraId: string - facultadId: string + facultad: { + id: string + nombre: string + } + carrera: { + id: string + nombre: string + } nivel: NivelPlanEstudio | '' tipoCiclo: TipoCiclo | '' numCiclos: number | undefined