Horario 2022 B 5to

master
Araozu 2022-09-09 18:03:59 -05:00
parent e97e2ab4bb
commit c4bd0ab58e
8 changed files with 469 additions and 29 deletions

View File

@ -1,4 +1,4 @@
lockfileVersion: 5.3 lockfileVersion: 5.4
specifiers: specifiers:
'@types/jest': 26.0.20 '@types/jest': 26.0.20
@ -24,8 +24,8 @@ dependencies:
devDependencies: devDependencies:
'@types/jest': 26.0.20 '@types/jest': 26.0.20
'@types/node': 14.14.20 '@types/node': 14.14.20
'@typescript-eslint/eslint-plugin': 4.19.0_462b4cd37d11e0260fa1b0b776770dee '@typescript-eslint/eslint-plugin': 4.19.0_iyvuzu35chqcmd5bwc3xm5yn5y
'@typescript-eslint/parser': 4.19.0_eslint@7.22.0+typescript@4.6.3 '@typescript-eslint/parser': 4.19.0_fptv3jwziuge6fofprjqm5efei
aphrodite: 2.4.0 aphrodite: 2.4.0
browserslist: 4.20.2 browserslist: 4.20.2
component-register: 0.7.1 component-register: 0.7.1
@ -287,6 +287,8 @@ packages:
resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==} resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==}
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
hasBin: true hasBin: true
dependencies:
'@babel/types': 7.17.0
dev: true dev: true
/@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.8: /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.8:
@ -478,7 +480,7 @@ packages:
'@types/yargs-parser': 20.2.0 '@types/yargs-parser': 20.2.0
dev: true dev: true
/@typescript-eslint/eslint-plugin/4.19.0_462b4cd37d11e0260fa1b0b776770dee: /@typescript-eslint/eslint-plugin/4.19.0_iyvuzu35chqcmd5bwc3xm5yn5y:
resolution: {integrity: sha512-CRQNQ0mC2Pa7VLwKFbrGVTArfdVDdefS+gTw0oC98vSI98IX5A8EVH4BzJ2FOB0YlCmm8Im36Elad/Jgtvveaw==} resolution: {integrity: sha512-CRQNQ0mC2Pa7VLwKFbrGVTArfdVDdefS+gTw0oC98vSI98IX5A8EVH4BzJ2FOB0YlCmm8Im36Elad/Jgtvveaw==}
engines: {node: ^10.12.0 || >=12.0.0} engines: {node: ^10.12.0 || >=12.0.0}
peerDependencies: peerDependencies:
@ -489,8 +491,8 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/experimental-utils': 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_eslint@7.22.0+typescript@4.6.3 '@typescript-eslint/parser': 4.19.0_fptv3jwziuge6fofprjqm5efei
'@typescript-eslint/scope-manager': 4.19.0 '@typescript-eslint/scope-manager': 4.19.0
debug: 4.3.1 debug: 4.3.1
eslint: 7.22.0 eslint: 7.22.0
@ -504,7 +506,7 @@ packages:
- supports-color - supports-color
dev: true 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==} resolution: {integrity: sha512-9/23F1nnyzbHKuoTqFN1iXwN3bvOm/PRIXSBR3qFAYotK/0LveEOHr5JT1WZSzcD6BESl8kPOG3OoDRKO84bHA==}
engines: {node: ^10.12.0 || >=12.0.0} engines: {node: ^10.12.0 || >=12.0.0}
peerDependencies: peerDependencies:
@ -522,7 +524,7 @@ packages:
- typescript - typescript
dev: true 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==} resolution: {integrity: sha512-/uabZjo2ZZhm66rdAu21HA8nQebl3lAIDcybUoOxoI7VbZBYavLIwtOOmykKCJy+Xq6Vw6ugkiwn8Js7D6wieA==}
engines: {node: ^10.12.0 || >=12.0.0} engines: {node: ^10.12.0 || >=12.0.0}
peerDependencies: peerDependencies:

View File

@ -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

View File

@ -14,7 +14,7 @@ import { batch, createEffect, createMemo, createSignal, Show } from "solid-js"
import { useListaCursos } from "./useListaCursos" import { useListaCursos } from "./useListaCursos"
const datosPromise = (async() => { 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 text = await file.text()
const datosRaw = YAML.parse(text) as DatosHorarioRaw const datosRaw = YAML.parse(text) as DatosHorarioRaw

View File

@ -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" import { DatosGrupo } from "../types/DatosHorario"
const createMemoDefault = <T>(f: () => T) => createMemo<T>( const createMemoDefault = <T>(f: () => T) => createMemo<T>(
f, f,
undefined, undefined,
(x, y) => x === y, {
equals: (x, y) => x === y,
},
) )
/** /**
@ -46,15 +49,15 @@ interface ISeleccionado {
export class TablaObserver { export class TablaObserver {
private readonly resaltado: State<IResaltado> private readonly resaltado: Store<IResaltado>
private readonly setResaltado: SetStateFunction<IResaltado> private readonly setResaltado: SetStoreFunction<IResaltado>
private memos: { [id: string]: () => EstadoCelda } = {} private memos: { [id: string]: () => EstadoCelda } = {}
private readonly seleccionado: State<ISeleccionado> private readonly seleccionado: Store<ISeleccionado>
private readonly setSeleccionado: SetStateFunction<ISeleccionado> private readonly setSeleccionado: SetStoreFunction<ISeleccionado>
constructor() { constructor() {
const [resaltado, setResaltado] = createState<IResaltado>({ const [resaltado, setResaltado] = createStore<IResaltado>({
anio: undefined, anio: undefined,
curso: undefined, curso: undefined,
esLab: undefined, esLab: undefined,
@ -63,7 +66,7 @@ export class TablaObserver {
this.resaltado = resaltado this.resaltado = resaltado
this.setResaltado = setResaltado this.setResaltado = setResaltado
const [seleccionado, setSeleccionado] = createState<ISeleccionado>({}) const [seleccionado, setSeleccionado] = createStore<ISeleccionado>({})
this.seleccionado = seleccionado this.seleccionado = seleccionado
this.setSeleccionado = setSeleccionado this.setSeleccionado = setSeleccionado
} }
@ -101,7 +104,7 @@ export class TablaObserver {
}) })
// Registrar curso en `seleccionado` // Registrar curso en `seleccionado`
this.setSeleccionado((obj: State<ISeleccionado>) => { this.setSeleccionado((obj: Store<ISeleccionado>) => {
const nuevoObj = {...obj} const nuevoObj = {...obj}
if (!nuevoObj[anio]) { if (!nuevoObj[anio]) {

View File

@ -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" import { Curso, ListaCursosUsuario } from "../types/DatosHorario"
interface ReturnType { interface ReturnType {
listaCursos: State<ListaCursosUsuario>, listaCursos: Store<ListaCursosUsuario>,
setListaCursos: SetStateFunction<ListaCursosUsuario>, setListaCursos: SetStoreFunction<ListaCursosUsuario>,
agregarCursoALista: (c: Curso) => Curso, agregarCursoALista: (c: Curso) => Curso,
eliminarCursosDeLista: () => void eliminarCursosDeLista: () => void
} }
export const useListaCursos = (): ReturnType => { export const useListaCursos = (): ReturnType => {
const [listaCursos, setListaCursos] = createState<ListaCursosUsuario>({ const [listaCursos, setListaCursos] = createStore<ListaCursosUsuario>({
sigIndice: 0, sigIndice: 0,
cursos: [], cursos: [],
}) })

View File

@ -45,4 +45,4 @@ const tamanoLetraGuardado = Number(localStorage.getItem("tamano-letra") ?? "16")
export const [modoColor, setModoColor] = createSignal(ModoColor.Oscuro) export const [modoColor, setModoColor] = createSignal(ModoColor.Oscuro)
export const [numWallpaper, setNumWallpaper] = createSignal(numImgGuardado) export const [numWallpaper, setNumWallpaper] = createSignal(numImgGuardado)
export const [mostrarDescansos, setMostrarDescansos] = createSignal(true) export const [mostrarDescansos, setMostrarDescansos] = createSignal(true)
export const [tamanoLetra, setTamanoLetra] = createSignal(tamanoLetraGuardado); export const [tamanoLetra, setTamanoLetra] = createSignal(tamanoLetraGuardado)

View File

@ -7,7 +7,8 @@ import YAML from "yaml"
import { TablaObserver } from "../ContenedorHorarios/TablaObserver" import { TablaObserver } from "../ContenedorHorarios/TablaObserver"
import { Curso, Cursos } from "../types/DatosHorario" import { Curso, Cursos } from "../types/DatosHorario"
import { CursosElem } from "../ContenedorHorarios/CursosElem" 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" import { CursoEditor } from "./Editor/CursoEditor"
const e = StyleSheet.create({ const e = StyleSheet.create({
@ -25,7 +26,7 @@ interface Data {
cursos: Curso[], cursos: Curso[],
} }
const [nuevaData, setNuevaData] = createState<Data>({ const [nuevaData, setNuevaData] = createStore<Data>({
indice: 1, indice: 1,
cursos: [{ cursos: [{
nombre: "Curso de Ejemplo", nombre: "Curso de Ejemplo",
@ -109,7 +110,7 @@ export function Editor() {
<span style={{margin: "1rem 0", display: "inline-block"}}> <span style={{margin: "1rem 0", display: "inline-block"}}>
Agregar curso nuevo: Agregar curso nuevo:
</span> </span>
<form onSubmit={agregarCurso}> <form onSubmit={(ev) => agregarCurso(ev as FormEvent)}>
<label htmlFor="nombre_curso">Nombre del curso:</label> <label htmlFor="nombre_curso">Nombre del curso:</label>
<input className={css(estilosGlobales.entradaTexto)} type="text" id="nombre_curso" name="nombre_curso" /> <input className={css(estilosGlobales.entradaTexto)} type="text" id="nombre_curso" name="nombre_curso" />
<br /> <br />

View File

@ -1,6 +1,7 @@
import { StyleSheet, css } from "aphrodite" import { StyleSheet, css } from "aphrodite"
import { numWallpaper } from "./Store" import { numWallpaper } from "./Store"
import { createEffect, createState } from "solid-js" import { createEffect } from "solid-js"
import {createStore} from "solid-js/store"
const duracionTransicion = 250 const duracionTransicion = 250
@ -33,7 +34,7 @@ export function Wallpaper() {
}, },
}) })
const [estilosRaw, setEstilosRaw] = createState({ const [estilosRaw, setEstilosRaw] = createStore({
"background-image": "none", "background-image": "none",
opacity: 1, opacity: 1,
}) })