Cursos y programas diseñados para conectar conocimiento, práctica y contexto, con herramientas que podés llevar a tu realidad profesional desde el primer día.
+
+
@@ -326,7 +328,7 @@
- PROGRAMA EJECUTIVO
+
PROGRAMA EJECUTIVO
Título del Curso
diff --git a/js/main.js b/js/main.js
index 12180bf..12b9018 100644
--- a/js/main.js
+++ b/js/main.js
@@ -496,6 +496,8 @@ function closeModal(modalId) {
/* ==========================================================================
6. Carga Dinámica de Cursos en IDE Academy (cursos.json)
========================================================================== */
+const GOOGLE_SHEETS_API_URL = 'https://script.google.com/macros/s/AKfycbzsZUvY29i9w0SEPYqL46SJSr8AqG0kBxKP5-RFJmr2ABd6JaF9L5o4iUhOYUwrDiYn/exec';
+
let allCourses = [];
async function initAcademyCourses() {
@@ -503,43 +505,136 @@ async function initAcademyCourses() {
if (!container) return;
try {
- const res = await fetch('/data/cursos.json');
- if (!res.ok) throw new Error('No se pudo cargar cursos.json');
- allCourses = await res.json();
+ // 1. Revisar si tenemos datos cacheados en la sesión para carga ultra rápida
+ const cachedData = sessionStorage.getItem('ide_academy_courses');
+ if (cachedData) {
+ allCourses = filterVisibleCourses(JSON.parse(cachedData));
+ renderCourseCards(allCourses, container);
+ }
+
+ // 2. Traer la información fresca desde Google Sheets
+ const res = await fetch(GOOGLE_SHEETS_API_URL);
+ if (!res.ok) throw new Error('Error al conectar con Google Sheets');
+
+ const freshData = await res.json();
+
+ // Guardar en caché de sesión
+ sessionStorage.setItem('ide_academy_courses', JSON.stringify(freshData));
+
+ // Filtrar y renderizar
+ allCourses = filterVisibleCourses(freshData);
renderCourseCards(allCourses, container);
+
} catch (err) {
- console.warn('Cargando cursos con datos de respaldo.');
- allCourses = getFallbackCourses();
- renderCourseCards(allCourses, container);
+ console.warn('Error con Google Sheets, recurriendo a respaldo:', err);
+ // Si falla la red o Google, usamos el fallback
+ if (allCourses.length === 0) {
+ allCourses = filterVisibleCourses(getFallbackCourses());
+ renderCourseCards(allCourses, container);
+ }
}
}
+/**
+ * Filtra cursos por estado: solo admite "Publicado" y "Próximamente"
+ * Normaliza acentos y mayúsculas/minúsculas para evitar errores tipográficos
+ */
+function filterVisibleCourses(courses) {
+ if (!Array.isArray(courses)) return [];
+
+ return courses.filter(course => {
+ if (!course.estado) return false;
+ const cleanStatus = course.estado
+ .trim()
+ .toLowerCase()
+ .normalize("NFD")
+ .replace(/[\u0300-\u036f]/g, ""); // "próximamente" -> "proximamente"
+
+ return cleanStatus === 'publicado' || cleanStatus === 'proximamente';
+ });
+}
+
function renderCourseCards(courses, container) {
container.innerHTML = '';
+ if (courses.length === 0) {
+ container.innerHTML = `
+
+
+ No hay convocatorias abiertas en este momento. Consultanos por programas a medida o In-Company.
+
`;
}
@@ -655,7 +777,7 @@ window.openCourseModal = function (courseId) {
const params = new URLSearchParams({
origen: 'IDE_Academy',
busqueda: 'Formación para mi organización',
- curso: course.titulo
+ curso: `${course.titulo} (${course.id})`
});
ctaElem.setAttribute('href', `contacto.html?${params.toString()}`);
}
@@ -666,18 +788,30 @@ window.openCourseModal = function (courseId) {
function getFallbackCourses() {
return [
{
- id: "curso-iso-9001",
- titulo: "Sistemas de Gestión de Calidad (ISO 9001:2015): De la Norma a la Gestión Real",
- categoria: "IDE Excellence & Academy",
- modalidad: "Online sincrónico / In-Company",
- duracion: "32 horas (8 semanas)",
- descripcion_corta: "Aprenda a diseñar, implementar y auditar un SGC que trascienda la mera auditoría y transforme los procesos.",
- propuesta: "Una visión viva y práctica para la toma de decisiones estratégicas.",
- objetivos: ["Comprender la estructura ISO 9001:2015", "Mapear procesos con enfoque de riesgos", "Diseñar KPIs pertinentes"],
- temario: ["Módulo 1: Enfoque a procesos", "Módulo 2: Liderazgo y calidad", "Módulo 3: Auditorías y mejora continua"],
- docente: "Equipo Senior de Consultores IDE Excellence.",
- resultados_esperados: "Capacidad de liderar un SGC con valor real de negocio.",
- proxima_fecha: "Octubre 2026"
+ id: "ACA-GC-001",
+ estado: "Próximamente",
+ titulo: "Calidad que genera valor: De la norma a la gestión real",
+ area_tematica: "Gestión & Calidad",
+ tipo: "Curso",
+ modalidad: "Online sincrónico",
+ duracion: "12 horas – 4 encuentros",
+ nivel: "Intermedio",
+ destinatarios: "Responsables de calidad, líderes de procesos y mandos medios.",
+ propuesta_formativa: "Una experiencia práctica y estratégica para transformar el sistema de calidad en una herramienta real de gestión.",
+ que_vas_a_desarrollar: [
+ "Capacidad para diagnosticar cuellos de botella reales.",
+ "Diseño de indicadores con impacto operativo.",
+ "Liderazgo en auditorías con enfoque de valor."
+ ],
+ recorrido_aprendizaje: [
+ "1. De cumplir normas a gestionar resultados.",
+ "2. Mapeo y rediseño de procesos críticos.",
+ "3. Indicadores clave y tableros de gestión.",
+ "4. Auditoría interna con valor agregado."
+ ],
+ equipo_docente: "Equipo IDE Excellence",
+ proxima_edicion: "A confirmar",
+ informacion_comercial: "Próxima edición con cupos limitados. Consultar por ediciones In-Company."
}
];
}