From 3fccdc04780ad0d374bc0b66f930a4cf005551c2 Mon Sep 17 00:00:00 2001 From: Guillermo Arrieta Medina Date: Wed, 22 Oct 2025 15:54:42 -0600 Subject: [PATCH] commit wip --- src/components/planes/AddAsignaturaButton.tsx | 2 +- src/components/planes/DeletePlan.tsx | 2 +- src/components/planes/GenerarPdfButton.tsx | 33 +++++++++++++++++++ .../asignatura/$asignaturaId.tsx | 4 +-- src/routes/_authenticated/plan/$planId.tsx | 9 +++-- src/routes/login.tsx | 5 +-- 6 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 src/components/planes/GenerarPdfButton.tsx diff --git a/src/components/planes/AddAsignaturaButton.tsx b/src/components/planes/AddAsignaturaButton.tsx index d5e639b..fade9b3 100644 --- a/src/components/planes/AddAsignaturaButton.tsx +++ b/src/components/planes/AddAsignaturaButton.tsx @@ -43,7 +43,7 @@ export function AddAsignaturaButton({ planId, onAdded }: { planId: string; onAdd horas_teoricas: toNum(f.horas_teoricas), horas_practicas: toNum(f.horas_practicas), objetivos: toNull(f.objetivos), - contenidos: {}, bibliografia: [], criterios_evaluacion: null, + contenidos: [], bibliografia: [], criterios_evaluacion: null, } const { error } = await supabase.from("asignaturas").insert([payload]) setSaving(false) diff --git a/src/components/planes/DeletePlan.tsx b/src/components/planes/DeletePlan.tsx index b561a02..b672f4b 100644 --- a/src/components/planes/DeletePlan.tsx +++ b/src/components/planes/DeletePlan.tsx @@ -28,10 +28,10 @@ export function DeletePlanButton({ planId, onDeleted }: { planId: string; onDele return confirm ? (
+ -
) : ( + ) +} + +function descargarPdf(planId: string, opcion: "plan" | "asignaturas") { + // Lógica para generar y descargar el PDF del plan de estudios + try { + // Usa la variable de entorno para construir la URL completa + const pdfUrl = opcion === "plan" + ? `${import.meta.env.VITE_BACK_ORIGIN}/api/planes/${planId}/descargar-pdf-plan` + : `${import.meta.env.VITE_BACK_ORIGIN}/api/planes/${planId}/descargar-pdf-asignaturas`; + + const link = document.createElement('a'); + link.href = pdfUrl; + link.download = opcion === "plan" + ? `plan_estudios_${planId}.pdf` + : `asignaturas_plan_estudios_${planId}.pdf`; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } catch (error) { + console.error("Error al descargar el PDF:", error); + alert("Hubo un error al descargar el PDF. Por favor, inténtalo de nuevo."); + } +} diff --git a/src/routes/_authenticated/asignatura/$asignaturaId.tsx b/src/routes/_authenticated/asignatura/$asignaturaId.tsx index 27f75c8..e749de2 100644 --- a/src/routes/_authenticated/asignatura/$asignaturaId.tsx +++ b/src/routes/_authenticated/asignatura/$asignaturaId.tsx @@ -135,7 +135,7 @@ function Page() { {/* ===== Hero ===== */}
-
+
Asignatura @@ -613,10 +613,10 @@ function BorrarAsignaturaButton({ asignatura_id, onDeleted }: { asignatura_id: s return confirm ? (
+ -
) : (