From c4bd0ab58ec92a5ab7f6890fd1e0046f168ba265 Mon Sep 17 00:00:00 2001 From: Araozu Date: Fri, 9 Sep 2022 18:03:59 -0500 Subject: [PATCH] Horario 2022 B 5to --- pnpm-lock.yaml | 18 +- .../2022_2_fps_ingenieriadesistemas.yaml | 433 ++++++++++++++++++ src/ContenedorHorarios/ContenedorHorarios.tsx | 2 +- src/ContenedorHorarios/TablaObserver.ts | 21 +- src/ContenedorHorarios/useListaCursos.ts | 8 +- src/Store.ts | 4 +- src/Views/Editor.tsx | 7 +- src/Wallpaper.tsx | 5 +- 8 files changed, 469 insertions(+), 29 deletions(-) create mode 100755 public/horarios/2022_2_fps_ingenieriadesistemas.yaml diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f0db535..c9f5240 100755 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: 5.3 +lockfileVersion: 5.4 specifiers: '@types/jest': 26.0.20 @@ -24,8 +24,8 @@ dependencies: devDependencies: '@types/jest': 26.0.20 '@types/node': 14.14.20 - '@typescript-eslint/eslint-plugin': 4.19.0_462b4cd37d11e0260fa1b0b776770dee - '@typescript-eslint/parser': 4.19.0_eslint@7.22.0+typescript@4.6.3 + '@typescript-eslint/eslint-plugin': 4.19.0_iyvuzu35chqcmd5bwc3xm5yn5y + '@typescript-eslint/parser': 4.19.0_fptv3jwziuge6fofprjqm5efei aphrodite: 2.4.0 browserslist: 4.20.2 component-register: 0.7.1 @@ -287,6 +287,8 @@ packages: resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.17.0 dev: true /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.8: @@ -478,7 +480,7 @@ packages: '@types/yargs-parser': 20.2.0 dev: true - /@typescript-eslint/eslint-plugin/4.19.0_462b4cd37d11e0260fa1b0b776770dee: + /@typescript-eslint/eslint-plugin/4.19.0_iyvuzu35chqcmd5bwc3xm5yn5y: resolution: {integrity: sha512-CRQNQ0mC2Pa7VLwKFbrGVTArfdVDdefS+gTw0oC98vSI98IX5A8EVH4BzJ2FOB0YlCmm8Im36Elad/Jgtvveaw==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -489,8 +491,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 4.19.0_eslint@7.22.0+typescript@4.6.3 - '@typescript-eslint/parser': 4.19.0_eslint@7.22.0+typescript@4.6.3 + '@typescript-eslint/experimental-utils': 4.19.0_fptv3jwziuge6fofprjqm5efei + '@typescript-eslint/parser': 4.19.0_fptv3jwziuge6fofprjqm5efei '@typescript-eslint/scope-manager': 4.19.0 debug: 4.3.1 eslint: 7.22.0 @@ -504,7 +506,7 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/4.19.0_eslint@7.22.0+typescript@4.6.3: + /@typescript-eslint/experimental-utils/4.19.0_fptv3jwziuge6fofprjqm5efei: resolution: {integrity: sha512-9/23F1nnyzbHKuoTqFN1iXwN3bvOm/PRIXSBR3qFAYotK/0LveEOHr5JT1WZSzcD6BESl8kPOG3OoDRKO84bHA==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -522,7 +524,7 @@ packages: - typescript dev: true - /@typescript-eslint/parser/4.19.0_eslint@7.22.0+typescript@4.6.3: + /@typescript-eslint/parser/4.19.0_fptv3jwziuge6fofprjqm5efei: resolution: {integrity: sha512-/uabZjo2ZZhm66rdAu21HA8nQebl3lAIDcybUoOxoI7VbZBYavLIwtOOmykKCJy+Xq6Vw6ugkiwn8Js7D6wieA==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: diff --git a/public/horarios/2022_2_fps_ingenieriadesistemas.yaml b/public/horarios/2022_2_fps_ingenieriadesistemas.yaml new file mode 100755 index 0000000..c3e2442 --- /dev/null +++ b/public/horarios/2022_2_fps_ingenieriadesistemas.yaml @@ -0,0 +1,433 @@ +titulo: Horarios 2021-A, Ingeniería de Sistemas. +version: 20210328 +descripcion: | + Última actualizacion: 2021/03/28 +años: + 1er año: {} + 2do año: {} + 3er año: {} + 4to año: + Intro Soft Ent: + nombre: Introduccion a Software de Entetenimiento + abreviado: IDSEe + Teoria: + A: + Docente: Diego Iquira + Horas: + - Ma0940 + - Ma1040 + - Ma1130 + B: + Docente: Diego Iquira + Horas: + - Lu1740 + - Lu1830 + - Lu1920 + Laboratorio: + A: + Docente: Rosa Encinas + Horas: + - Vi0700 + - Vi0750 + B: + Docente: Rosa Encinas + Horas: + - Vi1920 + - Vi2010 + C: + Docente: Rosa Encinas + Horas: + - Vi1740 + - Vi1830 + Diseno y Arquitectura: + nombre: Diseño Y Arquitectura de Software + abreviado: DAS + Teoria: + A: + Docente: Percy Huertas + Horas: + - Lu0850 + - Lu0940 + - Mi0850 + - Mi0940 + B: + Docente: Percy Huertas + Horas: + - Lu1400 + - Lu1450 + - Ma1400 + - Ma1450 + Laboratorio: + A: + Docente: Percy Huertas + Horas: + - Lu1040 + - Lu1130 + B: + Docente: Franklin Cruz + Horas: + - Mi1400 + - Mi1450 + C: + Docente: Franklin Cruz + Horas: + - Mi1220 + - Mi1310 + Gestion Proyecto Soft: + nombre: Gestion de Proyectos de Software + abreviado: GPS + Teoria: + A: + Docente: Jesús Silva + Horas: + - Mi0700 + - Mi0750 + B: + Docente: Yasiel Perez + Horas: + - Mi1550 + - Mi1640 + C: + Docente: Yasiel Perez + Horas: + - Lu1040 + - Lu1130 + Laboratorio: + A: + Docente: Jesús Silva + Horas: + - Lu0700 + - Lu0750 + B: + Docente: Yasiel Perez + Horas: + - Lu1220 + - Lu1310 + C: + Docente: Yasiel Perez + Horas: + - Ma1740 + - Ma1830 + Negocios Electronicos: + nombre: Negocios Electrónicos + abreviado: NE + Teoria: + A: + Docente: Cesar Baluarte + Horas: + - Mi1040 + - Mi1130 + - Mi1220 + B: + Docente: Lilian Benique + Horas: + - Vi1630 + - Vi1920 + - Vi2010 + + Auditoria: + nombre: Auditoría de Sistemas + abreviado: AS + Teoria: + A: + Docente: Edward Zarate + Horas: + - Ju0940 + - Ju1040 + - Ju1130 + - Vi0850 + - Vi0940 + B: + Docente: Edward Zarate + Horas: + - Ju1400 + - Ju1450 + - Ju1550 + - Vi1400 + - Vi1450 + C: + Docente: Edith Cano + Horas: + - Mi1400 + - Mi1450 + - Ju0700 + - Ju0750 + - Ju0850 + Aspectos Formales: + nombre: Aspectos Formales de Verificación y Especificación + abreviado: AFEV + Teoria: + A: + Docente: Maribel Molina + Horas: + - Lu0700 + - Lu0750 + B: + Docente: Maribel Molina + Horas: + - Ju1920 + - Ju2010 + C: + Docente: Maribel Molina + Horas: + - Vi0700 + - Vi0750 + Calidad Soft: + nombre: Calidad de Software + abreviado: CS + Teoria: + A: + Docente: Jesús Silva + Horas: + - Ma0700 + - Ma0750 + B: + Docente: Maribel Molina + Horas: + - Mi1740 + - Mi1830 + Laboratorio: + A: + Docente: Jesús Silva + Horas: + - Lu0850 + - Lu0940 + B: + Docente: Jesús Silva + Horas: + - Mi1550 + - Mi1640 + C: + Docente: Maribel Molina + Horas: + - Ju0700 + - Ju0750 + Intro Nueva Plat: + nombre: Introduccion al Desarrollo de Nuevas Plataformas + abreviado: IDNP + Teoria: + A: + Docente: Ernesto Suarez + Horas: + - Vi1040 + - Vi1130 + - Vi1220 + B: + Docente: Ernesto Suarez + Horas: + - Vi1550 + - Vi1640 + - Vi1740 + Laboratorio: + A: + Docente: Ernesto Suarez + Horas: + - Mi0700 + - Mi0750 + B: + Docente: Ernesto Suarez + Horas: + - Mi1740 + - Mi1830 + C: + Docente: Ernesto Suarez + Horas: + - Mi1920 + - Mi2010 + 5to año: + Topicos: + nombre: Tópicos Avanzados en Ingeniería de Software + abreviado: TAIS + Teoria: + A: + Docente: "?" + Horas: + - Ma0940 + - Ma1040 + - Ma1130 + B: + Docente: "?" + Horas: + - Vi1450 + - Vi1550 + - Vi1640 + Laboratorio: + A: + Docente: "?" + Horas: + - Mi0700 + - Mi0750 + B: + Docente: "?" + Horas: + - Mi1400 + - Mi1450 + Plataformas: + nombre: Plataformas Emergentes + abreviado: PE + Teoria: + A: + Docente: "?" + Horas: + - Lu0750 + - Lu0850 + Laboratorio: + A: + Docente: "?" + Horas: + - Ju0850 + - Ju0940 + Proyecto de Sw: + nombre: Proyecto de Ingeniería de Software 2 + abreviado: PIS2 + Teoria: + A: + Docente: "?" + Horas: + - Lu0940 + - Lu1040 + C: + Docente: "?" + Horas: + - Lu1130 + - Lu1220 + B: + Docente: "?" + Horas: + - Lu1550 + - Lu1640 + D: + Docente: "?" + Horas: + - Lu1740 + - Lu1830 + E: + Docente: "?" + Horas: + - Ju0940 + - Ju1040 + Laboratorio: + B: + Docente: "?" + Horas: + - Mi1830 + - Mi1920 + Sw de Juegos: + nombre: Desarrollo de Software para Juegos + abreviado: DSJ + Teoria: + A: + Docente: "?" + Horas: + - Lu1920 + - Lu2010 + Laboratorio: + A: + Docente: "?" + Horas: + - Mi1220 + - Mi1310 + Tesis 2: + nombre: Seminario de Tesis 2 + abreviado: ST2 + Teoria: + A: + Docente: "?" + Horas: + - Ma0700 + - Ma0750 + - Ma0850 + - Ju0700 + - Ju0750 + - Ju0850 + B: + Docente: "?" + Horas: + - Ma1310 + - Ma1400 + - Ma1450 + - Mi1310 + - Mi1400 + - Mi1450 + C: + Docente: "?" + Horas: + - Mi0750 + - Mi0850 + - Mi0940 + - Vi0700 + - Vi0750 + - Vi0850 + G: + Docente: "?" + Horas: + - Mi1040 + - Mi1130 + - Mi1220 + - Vi0940 + - Vi1040 + - Vi1130 + E: + Docente: "?" + Horas: + - Ma1550 + - Ma1640 + - Mi1550 + - Mi1640 + - Ju1550 + - Ju1640 + F: + Docente: "?" + Horas: + - Ju1220 + - Ju1310 + - Ju1400 + - Vi1220 + - Vi1310 + - Vi1400 + Gestion: + nombre: Gestión de Sistemas y Tecnologías de Información + abreviado: GSTI + Teoria: + A: + Docente: "?" + Horas: + - Ma1740 + - Ma1830 + Practicas: + nombre: Prácticas Pre Profesionales + abreviado: PPP + Teoria: + A: + Docente: "?" + Horas: + - Mi1740 + - Mi1830 + - Vi1740 + - Vi1830 + B: + Docente: "?" + Horas: + - Mi1920 + - Mi2010 + - Vi1920 + - Vi2010 + + + + + + + + + + + + + + + + + + + diff --git a/src/ContenedorHorarios/ContenedorHorarios.tsx b/src/ContenedorHorarios/ContenedorHorarios.tsx index dcf525e..01974d4 100755 --- a/src/ContenedorHorarios/ContenedorHorarios.tsx +++ b/src/ContenedorHorarios/ContenedorHorarios.tsx @@ -14,7 +14,7 @@ import { batch, createEffect, createMemo, createSignal, Show } from "solid-js" import { useListaCursos } from "./useListaCursos" const datosPromise = (async() => { - const file = await fetch("/horarios/2021_2_fps_ingenieriadesistemas.yaml") + const file = await fetch("/horarios/2022_2_fps_ingenieriadesistemas.yaml") const text = await file.text() const datosRaw = YAML.parse(text) as DatosHorarioRaw diff --git a/src/ContenedorHorarios/TablaObserver.ts b/src/ContenedorHorarios/TablaObserver.ts index d12a576..4dd9a31 100644 --- a/src/ContenedorHorarios/TablaObserver.ts +++ b/src/ContenedorHorarios/TablaObserver.ts @@ -1,10 +1,13 @@ -import { createMemo, createState, SetStateFunction, State, produce, createEffect, untrack } from "solid-js" +import { createMemo, createEffect, untrack } from "solid-js" +import {createStore, SetStoreFunction, Store, produce} from "solid-js/store" import { DatosGrupo } from "../types/DatosHorario" const createMemoDefault = (f: () => T) => createMemo( f, undefined, - (x, y) => x === y, + { + equals: (x, y) => x === y, + }, ) /** @@ -46,15 +49,15 @@ interface ISeleccionado { export class TablaObserver { - private readonly resaltado: State - private readonly setResaltado: SetStateFunction + private readonly resaltado: Store + private readonly setResaltado: SetStoreFunction private memos: { [id: string]: () => EstadoCelda } = {} - private readonly seleccionado: State - private readonly setSeleccionado: SetStateFunction + private readonly seleccionado: Store + private readonly setSeleccionado: SetStoreFunction constructor() { - const [resaltado, setResaltado] = createState({ + const [resaltado, setResaltado] = createStore({ anio: undefined, curso: undefined, esLab: undefined, @@ -63,7 +66,7 @@ export class TablaObserver { this.resaltado = resaltado this.setResaltado = setResaltado - const [seleccionado, setSeleccionado] = createState({}) + const [seleccionado, setSeleccionado] = createStore({}) this.seleccionado = seleccionado this.setSeleccionado = setSeleccionado } @@ -101,7 +104,7 @@ export class TablaObserver { }) // Registrar curso en `seleccionado` - this.setSeleccionado((obj: State) => { + this.setSeleccionado((obj: Store) => { const nuevoObj = {...obj} if (!nuevoObj[anio]) { diff --git a/src/ContenedorHorarios/useListaCursos.ts b/src/ContenedorHorarios/useListaCursos.ts index 1783b96..396b917 100644 --- a/src/ContenedorHorarios/useListaCursos.ts +++ b/src/ContenedorHorarios/useListaCursos.ts @@ -1,15 +1,15 @@ -import { createState, SetStateFunction, State } from "solid-js" +import {createStore, SetStoreFunction, Store} from "solid-js/store" import { Curso, ListaCursosUsuario } from "../types/DatosHorario" interface ReturnType { - listaCursos: State, - setListaCursos: SetStateFunction, + listaCursos: Store, + setListaCursos: SetStoreFunction, agregarCursoALista: (c: Curso) => Curso, eliminarCursosDeLista: () => void } export const useListaCursos = (): ReturnType => { - const [listaCursos, setListaCursos] = createState({ + const [listaCursos, setListaCursos] = createStore({ sigIndice: 0, cursos: [], }) diff --git a/src/Store.ts b/src/Store.ts index cfafd46..4311022 100755 --- a/src/Store.ts +++ b/src/Store.ts @@ -1,4 +1,4 @@ -import { createSignal} from "solid-js" +import { createSignal } from "solid-js" enum ModoColor { Claro, @@ -45,4 +45,4 @@ const tamanoLetraGuardado = Number(localStorage.getItem("tamano-letra") ?? "16") export const [modoColor, setModoColor] = createSignal(ModoColor.Oscuro) export const [numWallpaper, setNumWallpaper] = createSignal(numImgGuardado) export const [mostrarDescansos, setMostrarDescansos] = createSignal(true) -export const [tamanoLetra, setTamanoLetra] = createSignal(tamanoLetraGuardado); +export const [tamanoLetra, setTamanoLetra] = createSignal(tamanoLetraGuardado) diff --git a/src/Views/Editor.tsx b/src/Views/Editor.tsx index 61a593b..d0216e4 100644 --- a/src/Views/Editor.tsx +++ b/src/Views/Editor.tsx @@ -7,7 +7,8 @@ import YAML from "yaml" import { TablaObserver } from "../ContenedorHorarios/TablaObserver" import { Curso, Cursos } from "../types/DatosHorario" import { CursosElem } from "../ContenedorHorarios/CursosElem" -import { For, createMemo, createState } from "solid-js" +import { For, createMemo } from "solid-js" +import {createStore} from "solid-js/store" import { CursoEditor } from "./Editor/CursoEditor" const e = StyleSheet.create({ @@ -25,7 +26,7 @@ interface Data { cursos: Curso[], } -const [nuevaData, setNuevaData] = createState({ +const [nuevaData, setNuevaData] = createStore({ indice: 1, cursos: [{ nombre: "Curso de Ejemplo", @@ -109,7 +110,7 @@ export function Editor() { Agregar curso nuevo: -
+ agregarCurso(ev as FormEvent)}>
diff --git a/src/Wallpaper.tsx b/src/Wallpaper.tsx index 92e48db..54161ab 100755 --- a/src/Wallpaper.tsx +++ b/src/Wallpaper.tsx @@ -1,6 +1,7 @@ import { StyleSheet, css } from "aphrodite" import { numWallpaper } from "./Store" -import { createEffect, createState } from "solid-js" +import { createEffect } from "solid-js" +import {createStore} from "solid-js/store" const duracionTransicion = 250 @@ -33,7 +34,7 @@ export function Wallpaper() { }, }) - const [estilosRaw, setEstilosRaw] = createState({ + const [estilosRaw, setEstilosRaw] = createStore({ "background-image": "none", opacity: 1, })