Skip to content

Commit

Permalink
🐛 incluir relaciones años graduación
Browse files Browse the repository at this point in the history
  • Loading branch information
1cgonza committed Mar 21, 2024
1 parent b862ded commit 85d3fd4
Show file tree
Hide file tree
Showing 10 changed files with 68 additions and 25 deletions.
2 changes: 1 addition & 1 deletion estaticos/datosBuscador.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion estaticos/egresados.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion estaticos/listasEgresados.json

Large diffs are not rendered by default.

23 changes: 20 additions & 3 deletions procesador/egresados.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,13 @@ export default async function procesarEgresados(

flujo.on('data', (fila) => {
if (numeroFila > 2) {
fila.formatted.arr[1] = `${fila.formatted.arr[1]}`;
const datosFila = fila.formatted.arr;
const egresado: Egresado = { nombre: datosFila[0].trim(), id: numeroFila - 2 };

// const añoGraduacion = datosFila[1] ? `${datosFila[1]}` : null;
const añoGraduacion = validarValorSingular(datosFila[1], listasEgresados.graduacion);
if (añoGraduacion) egresado.graduacion = añoGraduacion;
if (añoGraduacion) egresado.graduacion = [añoGraduacion];

const institucion = validarValorSingular(datosFila[2]);
if (institucion) egresado.institucion = institucion;
Expand All @@ -53,11 +54,13 @@ export default async function procesarEgresados(

egresados.push(egresado);
}
console.log(egresados);
numeroFila++;
});

flujo.on('close', () => {
for (const lista in listasEgresados) {
ordenarListaObjetos(listasEgresados[lista as keyof ListasEgresados], 'slug', true);
}
ordenarListaObjetos(egresados, 'slug', true);

egresados.forEach((egresado) => {
Expand All @@ -82,9 +85,10 @@ export default async function procesarEgresados(

slugsCampoEgresado.forEach((slug) => {
const i = listasEgresados[llaveALlenar].findIndex((obj) => obj.slug === slug);

const elementosDondeConectar = Array.isArray(datosRelacion)
? (datosRelacion as DefinicionSimple[]).map(({ slug }) => slug)
: [datosRelacion];
: [(datosRelacion as DefinicionSimple).slug];

elementosDondeConectar.forEach((elementoConector) => {
const elementoALlenar = listasEgresados[llaveDondeLllenar].find(
Expand All @@ -111,6 +115,19 @@ export default async function procesarEgresados(
}
});
});
} else {
const elementosDondeConectar = Array.isArray(datosRelacion)
? (datosRelacion as DefinicionSimple[]).map(({ slug }) => slug)
: [(datosRelacion as DefinicionSimple).slug];
elementosDondeConectar.forEach((elementoConector) => {
const elementoALlenar = listasEgresados[llaveDondeLllenar].find(
(obj) => obj.slug === elementoConector
);

if (!elementoALlenar?.egresados?.includes(id)) {
elementoALlenar?.egresados?.push(id);
}
});
}
}
});
Expand Down
2 changes: 0 additions & 2 deletions procesador/procesador.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,7 @@ let personas: PersonaID;

async function procesar() {
personas = await procesarPersonas(archivo);

const egresados = await procesarEgresados(archivo, listasEgresados);

await procesarProyectos();
console.log('Proyectos procesados');
await procesarLugares(archivo, listas, listasEgresados);
Expand Down
4 changes: 3 additions & 1 deletion src/componentes/Ficha/Ficha.astro
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const secciones = [
{ nombre: 'Enlaces', slug: 'enlaces' },
{ nombre: 'Proyectos', slug: 'proyecto' },
{ nombre: 'Egresados', slug: 'egresado' },
{ nombre: 'Año de Graduación', slug: 'graduacion' },
{ nombre: 'Líderes de Proyectos', slug: 'lideres' },
{ nombre: 'Participantes', slug: 'participantes' },
Expand Down Expand Up @@ -226,6 +227,7 @@ const secciones = [
llenarCampos('temas', datos, vistaActual);
llenarCampos('paises', datos, vistaActual);
llenarCampos('ciudades', datos, vistaActual);
llenarCampos('graduacion', datos, vistaActual);
// Ocultar participantes en ficha de líderes de proyectos

if (datos.lista === 'Líderes de Proyectos') {
Expand All @@ -237,7 +239,7 @@ const secciones = [
});

function llenarCampos(
campo: LLavesMultiples | 'proyecto' | 'egresado' | 'ambitos' | 'ciudades',
campo: LLavesMultiples | 'proyecto' | 'egresado' | 'ambitos' | 'ciudades' | 'graduacion',
datos: Ficha,
vistaActual: 'proyectos' | 'egresados'
) {
Expand Down
12 changes: 10 additions & 2 deletions src/componentes/LineaTiempo.astro
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,15 @@ const listaAños = rango(1960, 2029);
</div>

<script>
import { actualizarUrl, datosFicha, datosLinea } from '@/utilidades/cerebro';
import { actualizarUrl, datosFicha, datosLinea, vista } from '@/utilidades/cerebro';
const marcas = document.getElementById('marcas') as HTMLElement & SVGElement;
const puntos = marcas.querySelectorAll<SVGGElement>('.punto');

puntos.forEach((punto) => {
punto.onclick = () => {
actualizarUrl([
{ nombre: 'id', valor: punto.dataset.indice as string },
{ nombre: 'tipo', valor: 'años' }
{ nombre: 'tipo', valor: vista.get() === 'proyectos' ? 'años' : 'graduacion' }
]);
};
});
Expand Down Expand Up @@ -155,6 +155,14 @@ const listaAños = rango(1960, 2029);
.desactivado {
opacity: 0.5;

&:hover {
cursor: pointer;
opacity: 0.8;
circle {
opacity: 0.8;
}
}

circle {
fill: rgba(26, 42, 34, 0.8);
opacity: 0.2;
Expand Down
13 changes: 12 additions & 1 deletion src/pages/egresados.astro
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,17 @@ import EgresadosNombres from '@/componentes/EgresadosNombres.astro';
import ListasEgresados from '@/componentes/ListasEgresados.astro';
import PataLogos from '@/componentes/PataLogos.astro';
import Creditos from '@/componentes/Creditos.astro';
const decadas: string[] = [];
listas.graduacion.forEach((obj) => {
const año = +obj.nombre;
const decada = `${año - (año % 10)}`;
if (!decadas.includes(decada)) {
decadas.push(decada);
}
});
---

<Plantilla>
Expand All @@ -20,7 +31,7 @@ import Creditos from '@/componentes/Creditos.astro';
<ListasEgresados />
<EgresadosNombres />
<Mapa />
<!-- <LineaTiempo tiempo={listas.años.map((obj) => obj.slug)} decadas={listas.decadas.map((obj) => obj.slug)} /> -->
<LineaTiempo tiempo={listas.graduacion.map((obj) => obj.slug)} decadas={decadas} />
</main>
</Plantilla>

Expand Down
3 changes: 2 additions & 1 deletion src/tipos.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ export interface RelacionesFicha {
ciudades?: ElementoFicha[];
regiones?: ElementoFicha[];
departamentos?: ElementoFicha[];
graduacion?: ElementoFicha[];
}

export interface Ficha extends RelacionesFicha {
Expand Down Expand Up @@ -164,7 +165,7 @@ export interface PersonaID {
export interface Egresado {
id: number;
nombre: string;
graduacion?: DefinicionSimple;
graduacion?: DefinicionSimple[];
institucion?: DefinicionSimple;
temas?: DefinicionSimple[];
ambitos?: DefinicionSimple[];
Expand Down
30 changes: 18 additions & 12 deletions src/utilidades/cerebro.ts
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,8 @@ elementoSeleccionado.subscribe((elemento) => {
'años',
relaciones.años.map((obj) => obj.nombre)
);
} else if (tipo === 'años') {
datosLinea.setKey('años', [datos.nombre]);
} else {
datosLinea.setKey('años', []);
}
Expand Down Expand Up @@ -327,7 +329,7 @@ elementoSeleccionado.subscribe((elemento) => {
buscarLugares('egresados', datosEgresado);
// no funciona aún
if (datosEgresado.graduacion) {
datosLinea.setKey('años', [datosEgresado.graduacion.nombre]);
datosLinea.setKey('años', [datosEgresado.graduacion[0].nombre]);
} else {
datosLinea.setKey('años', []);
}
Expand All @@ -340,7 +342,8 @@ elementoSeleccionado.subscribe((elemento) => {
paises: datosEgresado.paises ? datosEgresado.paises : [],
temas: datosEgresado.temas ? datosEgresado.temas : [],
ciudades: datosEgresado.ciudades ? datosEgresado.ciudades : [],
ambitos: datosEgresado.ambitos ? datosEgresado.ambitos : []
ambitos: datosEgresado.ambitos ? datosEgresado.ambitos : [],
graduacion: datosEgresado.graduacion ? datosEgresado.graduacion : []
});
} else {
const listas = datosListasEgresados.value;
Expand All @@ -357,15 +360,17 @@ elementoSeleccionado.subscribe((elemento) => {

actualizarLugar(tipo, datos.slug, datos.conteo, datos.relaciones);
const relaciones: RelacionesFicha = agruparRelaciones('egresados', datos.relaciones, listas);
console.log(datos);
// if (relaciones.años) {
// datosLinea.setKey(
// 'años',
// relaciones.años.map((obj) => obj.nombre)
// );
// } else {
// datosLinea.setKey('años', []);
// }

if (relaciones.graduacion) {
datosLinea.setKey(
'años',
relaciones.graduacion.map((obj) => obj.nombre)
);
} else if (tipo === 'graduacion') {
datosLinea.setKey('años', [datos.nombre]);
} else {
datosLinea.setKey('años', []);
}

datosFicha.set({
visible: true,
Expand All @@ -376,7 +381,8 @@ elementoSeleccionado.subscribe((elemento) => {
temas: relaciones.temas ? relaciones.temas : [],
ciudades: relaciones.ciudades ? relaciones.ciudades : [],
egresado: egresados,
ambitos: relaciones.ambitos ? relaciones.ambitos : []
ambitos: relaciones.ambitos ? relaciones.ambitos : [],
graduacion: relaciones.graduacion ? relaciones.graduacion : []
});
}
}
Expand Down

0 comments on commit 85d3fd4

Please sign in to comment.