diff --git a/src/data/api/plans.api.ts b/src/data/api/plans.api.ts index ee59d2b..ff75075 100644 --- a/src/data/api/plans.api.ts +++ b/src/data/api/plans.api.ts @@ -207,7 +207,7 @@ export async function plan_asignaturas_list( const { data, error } = await supabase .from('asignaturas') .select( - 'id,plan_estudio_id,horas_academicas,horas_independientes,estructura_id,codigo,nombre,tipo,creditos,numero_ciclo,linea_plan_id,orden_celda,estado,datos,contenido_tematico,asignatura_hash,tipo_origen,meta_origen,creado_por,actualizado_por,creado_en,actualizado_en', + 'id,plan_estudio_id,horas_academicas,horas_independientes,estructura_id,codigo,nombre,tipo,creditos,numero_ciclo,linea_plan_id,orden_celda,estado,datos,contenido_tematico,asignatura_hash,tipo_origen,meta_origen,creado_por,actualizado_por,creado_en,actualizado_en,prerrequisito_asignatura_id', ) .eq('plan_estudio_id', planId) .order('numero_ciclo', { ascending: true, nullsFirst: false }) diff --git a/src/routes/planes/$planId/_detalle/mapa.tsx b/src/routes/planes/$planId/_detalle/mapa.tsx index ef9e665..9709f9d 100644 --- a/src/routes/planes/$planId/_detalle/mapa.tsx +++ b/src/routes/planes/$planId/_detalle/mapa.tsx @@ -76,7 +76,7 @@ const mapAsignaturasToAsignaturas = ( // Mapeo directo de los nuevos campos de la API hd: asig.horas_academicas ?? 0, hi: asig.horas_independientes ?? 0, - prerrequisitos: [], + prerrequisito_asignatura_id: asig.prerrequisito_asignatura_id ?? null, } }) } @@ -336,6 +336,7 @@ function MapaCurricularPage() { horas_independientes?: TablesUpdate<'asignaturas'>['horas_independientes'] numero_ciclo?: TablesUpdate<'asignaturas'>['numero_ciclo'] linea_plan_id?: TablesUpdate<'asignaturas'>['linea_plan_id'] + prerrequisito_asignatura_id?: string | null } const patch: Partial = { nombre: editingData.nombre, @@ -345,6 +346,7 @@ function MapaCurricularPage() { horas_independientes: editingData.hi, numero_ciclo: editingData.ciclo, linea_plan_id: editingData.lineaCurricularId, + prerrequisito_asignatura_id: editingData.prerrequisito_asignatura_id, tipo: editingData.tipo.toUpperCase() as TipoAsignatura, // Asegurar que coincida con el ENUM (OBLIGATORIA/OPTATIVA) } @@ -490,7 +492,7 @@ function MapaCurricularPage() { e: React.FocusEvent, id: string, ) => { - const nuevoNombre = e.currentTarget.textContent?.trim() || '' + const nuevoNombre = e.currentTarget.textContent.trim() || '' // Buscamos la línea original para comparar const lineaOriginal = lineas.find((l) => l.id === id) @@ -935,65 +937,55 @@ function MapaCurricularPage() { {/* Fila 4: Seriación (Prerrequisitos) */}
- {/* Visualización de los prerrequisitos seleccionados */} -
- {editingData.prerrequisitos.map((pre) => ( - - {pre} - - - ))} -
+ {/* Visualización del Prerrequisito con el Nombre */}
{/* Fila 5: Tipo */} diff --git a/src/types/plan.ts b/src/types/plan.ts index b786038..2bf4e48 100644 --- a/src/types/plan.ts +++ b/src/types/plan.ts @@ -50,7 +50,7 @@ export interface Asignatura { orden?: number hd: number // <--- Añadir hi: number // <--- Añadir - prerrequisitos: Array + prerrequisito_asignatura_id: string | null } export interface Plan { diff --git a/src/types/supabase.ts b/src/types/supabase.ts index 02ab410..9a38201 100644 --- a/src/types/supabase.ts +++ b/src/types/supabase.ts @@ -156,6 +156,7 @@ export type Database = { plan_estudio_id: string tipo: Database['public']['Enums']['tipo_asignatura'] tipo_origen: Database['public']['Enums']['tipo_origen'] | null + prerrequisito_asignatura_id?: string } Insert: { actualizado_en?: string