Agregada reactividad al indicador de curso agregado. Arreglado error de persistencia de los cursos eliminados.

add-license-1
Araozu 2020-02-07 19:07:59 -05:00
parent fd8500b24b
commit 5f2042932c
4 changed files with 49 additions and 14 deletions

View File

@ -1,12 +1,12 @@
<template lang="pug"> <template lang="pug">
div.info_curso div.info_curso
h4.titulo_curso(@mouseenter="resaltarTodasCeldas" @mouseleave="quitarResaltadoCeldas" h4.titulo_curso(@mouseenter="resaltarTodasCeldas" @mouseleave="quitarResaltadoCeldas"
title="Agregar curso a mi horario." :title="cursoAgregado? 'Remover de mi horario': 'Agregar curso a mi horario'"
@click.stop="agregarCursoAMiHorario" @click.stop="agregarCursoAMiHorario"
) )
input.marcador_curso(type="checkbox" v-model="cursoAgregado") input.marcador_curso(type="checkbox" v-model="cursoAgregado")
span.ancho {{ curso.abreviado }} >&nbsp; span.ancho {{ curso.abreviado }} >&nbsp;
| {{ curso.nombre }} | {{ curso.nombre }} {{ nombreCurso }}
table.datos table.datos
tr tr
bloque(v-for="(grupos, profesor) in teoria" bloque(v-for="(grupos, profesor) in teoria"
@ -49,8 +49,6 @@
export default export default
name: "curso" name: "curso"
components: { bloque } components: { bloque }
data: ->
cursoAgregado: no
props: props:
curso: curso:
type: Object type: Object
@ -62,6 +60,7 @@
type: String type: String
required: true required: true
computed: computed:
esMiHorario: -> @nombreAño is "Mi horario"
teoria: -> teoria: ->
vm = this vm = this
profesores = {} profesores = {}
@ -89,25 +88,38 @@
break break
estaVacio estaVacio
nombreAñoMin: ->
nombreAño = @nombreAño
nombreAño.substring 0, nombreAño.indexOf " "
idCurso: ->
if @nombreAñoMin is "Mi"
@nombreCurso
else
"_" + @nombreAñoMin + @curso.abreviado
cursoAgregado: ->
cursosUsuario = @$store.state.horarioUsuario
for idCurso, _ of cursosUsuario
if idCurso is @idCurso then return true
false
methods: methods:
agregarCursoAMiHorario: -> agregarCursoAMiHorario: ->
if @cursoAgregado if @cursoAgregado
@cursoAgregado = false @$store.commit "removerCursoMiHorario", @idCurso
@$store.commit "removerCursoMiHorario", @nombreCurso
else else
@cursoAgregado = true idCurso = @idCurso
nombre = @nombreCurso nombre = @nombreCurso
datos = @curso datos = @curso
@$store.commit "agregarCursoAMiHorario", { nombre, datos } @$store.commit "agregarCursoAMiHorario", { nombre: idCurso, datos: datos }
obtenerClase: (grupo, esLab) -> obtenerClase: (grupo, esLab) ->
obtenerClaseGrupoCurso @nombreAño, @curso.abreviado, grupo, esLab obtenerClaseGrupoCurso @nombreAño, @curso.abreviado, grupo, esLab
procesarTeoria: () -> procesarTeoria: () ->
nombreAño = @nombreAño
cursoAbreviado = @curso.abreviado cursoAbreviado = @curso.abreviado
curso = @curso curso = @curso
nombreStore = "_" + (nombreAño.substring 0, nombreAño.indexOf " ") nombreStore = "_" + @nombreAñoMin
for nombreGrupo, { Horas } of curso.Teoria for nombreGrupo, { Horas } of curso.Teoria
for horaId in Horas for horaId in Horas
@ -123,6 +135,25 @@
@$store.commit "agregarACelda", {idCelda, datos} @$store.commit "agregarACelda", {idCelda, datos}
desprocesarTeoria: () ->
cursoAbreviado = @curso.abreviado
curso = @curso
nombreStore = "_" + @nombreAñoMin
for nombreGrupo, { Horas } of curso.Teoria
for horaId in Horas
datos = { cursoAbreviado, nombreGrupo, esLab: no }
idCelda = nombreStore + horaId
@$store.commit "quitarDeCelda", idCelda
for nombreGrupo, { Horas } of curso.Laboratorio
for horaId in Horas
datos = { cursoAbreviado, nombreGrupo, esLab: yes }
idCelda = nombreStore + horaId
@$store.commit "quitarDeCelda", idCelda
resaltarTodasCeldas: () -> resaltarTodasCeldas: () ->
resaltarCurso @nombreAño, @curso.abreviado resaltarCurso @nombreAño, @curso.abreviado
@ -132,6 +163,9 @@
mounted: -> mounted: ->
@procesarTeoria() @procesarTeoria()
beforeDestroy: ->
@desprocesarTeoria()
# #
</script> </script>

View File

@ -9,7 +9,7 @@
@mouseleave="quitarResaltadoGrupo(grupo)" @mouseleave="quitarResaltadoGrupo(grupo)"
@click="toggleActivo(grupo)" @click="toggleActivo(grupo)"
) )
| L{{ grupo }}&nbsp; | {{ esLab? 'T': 'G' }}{{ grupo }}&nbsp;
// //
</template> </template>

View File

@ -15,8 +15,9 @@ export default new Vuex.Store({
agregarACelda(state, {idCelda, datos}) { agregarACelda(state, {idCelda, datos}) {
state.celdas[idCelda].push(datos); state.celdas[idCelda].push(datos);
}, },
quitarDeCelda(state) { quitarDeCelda(state, idCelda) {
const ref = state.celdas[idCelda];
while (ref.length > 0) ref.pop()
}, },
agregarCursoAMiHorario(state, {nombre, datos} ) { agregarCursoAMiHorario(state, {nombre, datos} ) {
if (!state.horarioUsuario[nombre]) { if (!state.horarioUsuario[nombre]) {

View File

@ -1,7 +1,7 @@
<template lang="pug"> <template lang="pug">
div.home div.home
h2.titulo {{ datos.titulo }} h2.titulo {{ datos.titulo }}
p Puedes agregar cursos de diferentes años al horario. p Puedes agregar cursos de diferentes años a tu horario.
anio(:año="horarioUsuario" nombreAño="Mi horario") anio(:año="horarioUsuario" nombreAño="Mi horario")
anio(v-for="(año, i) in datos.años" :key="i" anio(v-for="(año, i) in datos.años" :key="i"
:año="año" :nombreAño="i" :año="año" :nombreAño="i"