def planes_de_estudios_page(): cookies = request.cookies cliente = ClienteAPI() planes = cliente.obtener_planes_de_estudio_alumno(cookies) return render_template('pages/planes_de_estudio_page.html', planes=planes)
def formulario_materias_alumno_page(): cookies = request.cookies cliente = ClienteAPI() mis_carreras = cliente.obtener_carreras_alumno(cookies) return render_template('pages/formulario_materias_alumno.html', carreras=mis_carreras)
def historial_encuestas_page(): cookies = request.cookies cliente = ClienteAPI() pendientes = cliente.obtener_todas_las_encuestas_alumno(cookies, False) finalizadas = cliente.obtener_todas_las_encuestas_alumno(cookies, True) return render_template('pages/historial_encuestas_page.html', pendientes=pendientes, finalizadas=finalizadas)
def resultados_encuestas_por_docente_page(idDocente): cookies = request.cookies cliente = ClienteAPI() docente = cliente.get_docente(cookies, idDocente) cuatrimestres_con_encuestas = cliente.get_cuatrimestres_con_resultados_encuesta_para_un_docente( cookies, idDocente) return render_template( 'pages/resultados_encuestas_por_docente_page.html', docente=docente, cuatrimestres_con_encuestas=cuatrimestres_con_encuestas)
def visualizar_resultados_encuesta_docente(idDocente, anio, cuatrimestre, cookies): cliente = ClienteAPI() docente = cliente.get_docente(cookies, idDocente) respuestas = cliente.obtener_repuestas_resultados_docentes_encuesta( cookies, idDocente, anio, cuatrimestre) return render_template('pages/respuestas_encuesta_por_docente_page.html', anio=anio, cuatrimestre=cuatrimestre, docente=docente, respuestas=respuestas)
def resultados_encuestas_por_curso_page(idCurso): cookies = request.cookies cliente = ClienteAPI() curso = cliente.get_curso(cookies, idCurso) materia = cliente.obtener_todas_las_materias( cookies, codigo_materia=curso["codigo_materia"]).pop() cuatrimestres_con_encuestas = cliente.get_cuatrimestres_con_resultados_encuesta_para_un_curso( cookies, idCurso) return render_template( 'pages/resultados_encuestas_por_curso_page.html', materia=materia, curso=curso, cuatrimestres_con_encuestas=cuatrimestres_con_encuestas)
def visualizar_plan_de_estudios_page(idPlanEstudios): cookies = request.cookies cliente = ClienteAPI() response = cliente.obtener_plan_de_estudios_alumno(cookies, idPlanEstudios) if "Error" in response: flash(response["Error"], 'error') return redirect(url_for('main.planes_de_estudios_page'), code=REDIRECTION_FOUND) plan = response["plan_de_estudio"] if plan["estado_numero"] != PLAN_FINALIZADO: return redirect(url_for('main.planes_de_estudios_page'), code=REDIRECTION_FOUND) return render_template('pages/ver_plan_de_estudios_page.html', plan=plan)
def editar_materia_page(idMateria): cookies = request.cookies cliente = ClienteAPI() materia = cliente.obtener_materia_alumno(cookies, idMateria) cursos = cliente.obtener_cursos_con_filtros( cookies, codigo_materia=materia["codigo"], id_carrera=materia["id_carrera"], filtrar_cursos=True) for i in range(len(cursos)): texto = "" for carrera in cursos[i]["carreras"]: texto += "carrera_" + str(carrera["id_carrera"]) + ";" cursos[i]["carreras"] = texto[:-1] estados = [] if materia["estado"] == ESTADO_MATERIA[EN_CURSO]: estados = [ ESTADO_MATERIA[EN_CURSO], ESTADO_MATERIA[FINAL_PENDIENTE], ESTADO_MATERIA[APROBADA], ESTADO_MATERIA[DESAPROBADA] ] if materia["estado"] == ESTADO_MATERIA[FINAL_PENDIENTE]: estados = [ ESTADO_MATERIA[FINAL_PENDIENTE], ESTADO_MATERIA[APROBADA], ESTADO_MATERIA[DESAPROBADA] ] formas_aprobacion = [] for forma in [EXAMEN, EXAMEN_EQUIVALENCIA, EQUIVALENCIA]: formas_aprobacion.append(FORMA_APROBACION[forma]) MAX_TIEMPO = 10 hoy = datetime.now().year anios = [x for x in range(hoy, hoy - MAX_TIEMPO, -1)] return render_template('pages/editar_materia_page.html', materia=materia, cursos=cursos, estados=estados, formas_aprobacion=formas_aprobacion, anios=anios)
def materia_page(idMateria): cookies = request.cookies cliente = ClienteAPI() materia = cliente.get_materia(cookies, idMateria) carreras = cliente.obtener_todas_las_carreras(cookies, materia["codigo"]) correlativas = cliente.obtener_materias_correlativas(cookies, idMateria) cursos = cliente.obtener_cursos_con_filtros( cookies, codigo_materia=materia["codigo"], id_carrera=materia["carrera_id"], filtrar_cursos=True) hay_curso_asterisco = False for curso in cursos: if curso["es_nuevo_curso"] == str(True): curso["codigo_curso"] = "* " + curso["codigo_curso"] hay_curso_asterisco = True return render_template('pages/materia_page.html', materia=materia, carreras=carreras, correlativas=correlativas, cursos=cursos, hay_curso_asterisco=hay_curso_asterisco)
def visualizar_resultados_encuesta(idCurso, anio, cuatrimestre, cookies, num_categoria): cliente = ClienteAPI() curso = cliente.get_curso(cookies, idCurso) materia = cliente.obtener_todas_las_materias( cookies, codigo_materia=curso["codigo_materia"]).pop() preguntas = cliente.obtener_preguntas_resultados_encuesta( cookies, [num_categoria]) respuestas = cliente.obtener_repuestas_resultados_encuesta( cookies, idCurso, num_categoria, anio, cuatrimestre) titulos = get_titulos(idCurso) if ( not cuatrimestre or not anio) else get_titulos_con_cuatrimestre_especifico( idCurso, anio, cuatrimestre) anterior_siguiente = get_anterior_siguiente(idCurso) if ( not cuatrimestre or not anio) else get_anterior_siguiente_con_cuatrimestre_especifico( idCurso, anio, cuatrimestre) return render_template('pages/respuestas_encuesta_por_curso_page.html', curso=curso, materia=materia, anio=anio, cuatrimestre=cuatrimestre, titulos=titulos, paso_activo=num_categoria, preguntas=preguntas, respuestas=respuestas, anterior_siguiente=anterior_siguiente)
def nuevo_plan_de_estudios_page(): cookies = request.cookies cliente = ClienteAPI() hoy = datetime.today() primer_cuatri_valido = 1 if hoy.month <= 7 else 2 mis_carreras = cliente.obtener_carreras_alumno(cookies) horarios = generar_lista_horarios() tematicas = cliente.obtener_todas_las_tematicas(cookies) anios = generar_lista_anios() materias_con_final_pendiente = cliente.obtener_materias_alumno(cookies, [FINAL_PENDIENTE]) return render_template('pages/generar_plan_de_estudios_page.html', carreras=mis_carreras, dias=DIAS, hora_desde=horarios[:-1], hora_hasta=horarios[1:], tematicas=tematicas, anios=anios, materias_con_final_pendiente=materias_con_final_pendiente, primer_cuatri_valido=primer_cuatri_valido )
def editar_materia_page_save(idMateria): response = ClienteAPI().modificar_materia_alumno( cookie=request.cookies, csrf_token=request.form["csrf_token"], idMateriaAlumno=idMateria, estado=request.form['estado'], cuatrimestre_aprobacion=request.form['cuatrimestre_aprobacion'], anio_aprobacion=request.form['anio_aprobacion'], fecha_aprobacion=request.form['fecha_aprobacion'], forma_aprobacion=request.form['forma_aprobacion'], calificacion=request.form['calificacion'], acta_resolucion=request.form['acta_resolucion']) if response == SUCCESS_NO_CONTENT or response == SUCCESS_OK: flash("Se gurdaron los cambios en la materia", 'success') else: flash(response["Error"], 'error') return redirect(url_for("main.datos_academicos_page"))
def administrar_horarios_upload_file(): f = request.files['file'] cuatrimestre = request.form['numero_cuatrimestre'] anio = request.form['anio'] ruta = 'app/tmp/' + secure_filename('Horarios_' + anio + "_" + cuatrimestre + "C.pdf") f.save(ruta) csrf_token = request.form['csrf_token'] response = ClienteAPI().guardar_horarios_PDF(request.cookies, csrf_token, ruta, anio, cuatrimestre) if (response == SUCCESS_NO_CONTENT or response == SUCCESS_OK): flash(gettext('Los horarios han sido guardados satisfactoriamente'), 'success') else: flash(response["Error"], 'error') return redirect(url_for("main.administrar_horarios_page"))
def agregar_materia_page_save(): response = ClienteAPI().agregar_materia_alumno( cookie=request.cookies, csrf_token=request.form["csrf_token"], idMateriaAlumno=request.form['materia'], idCurso=request.form['curso'], estado=request.form['estado'], cuatrimestre_aprobacion=request.form['cuatrimestre_aprobacion'], anio_aprobacion=request.form['anio_aprobacion'], fecha_aprobacion=request.form['fecha_aprobacion'], forma_aprobacion=request.form['forma_aprobacion'], calificacion=request.form['calificacion'], acta_resolucion=request.form['acta_resolucion'] ) if response == SUCCESS_NO_CONTENT or response == SUCCESS_OK: flash("Se agregó la materia satisfactoriamente", 'success') else: flash(response["Error"], 'error') return redirect(url_for("main.datos_academicos_page"))
def agregar_materia_page(): cookie = request.cookies mis_carreras = ClienteAPI().obtener_carreras_alumno(cookie) estados = [] for estado in [EN_CURSO, FINAL_PENDIENTE, APROBADA, DESAPROBADA]: estados.append(ESTADO_MATERIA[estado]) formas_aprobacion = [] for forma in [EXAMEN, EXAMEN_EQUIVALENCIA, EQUIVALENCIA]: formas_aprobacion.append(FORMA_APROBACION[forma]) MAX_TIEMPO = 10 hoy = datetime.now().year anios = [x for x in range(hoy, hoy - MAX_TIEMPO, -1)] return render_template('pages/agregar_materia_page.html', carreras=mis_carreras, estados=estados, formas_aprobacion=formas_aprobacion, anios=anios)
def modificar_curso_page(idCurso): cookies = request.cookies cliente = ClienteAPI() curso = cliente.get_curso(cookies, idCurso) docentes_actuales = cliente.obtener_docentes_del_curso(cookies, idCurso) docentes = cliente.obtener_todos_los_docentes(cookies) carreras = cliente.obtener_todas_las_carreras(request.cookies) carreras_curso = [] for carrera in carreras: activa = "false" for c_curso in curso["carreras"]: if carrera["codigo"] == c_curso["codigo"]: activa = "true" carreras_curso.append({ 'id_carrera': carrera["id_carrera"], 'codigo': carrera["codigo"], 'nombre': carrera["nombre"], 'activa': activa }) horarios = [] for i in frange(HORA_MIN, HORA_MAX + 0.5, 0.5): hora = int(i) minutos = "00" if hora == i else "30" horarios.append("{}:{}".format(get_numero_dos_digitos(hora), minutos)) return render_template('pages/modificar_curso_page.html', curso=curso, docentes=docentes, docentes_actuales=docentes_actuales, carreras=carreras_curso, dias=DIAS, hora_desde=horarios[:-1], hora_hasta=horarios[1:])
def visualizar_encuesta(idEncuestaAlumno, cookie, num_categoria): cliente = ClienteAPI() preguntas = cliente.obtener_preguntas_encuesta(cookie, [num_categoria]) encuesta = cliente.obtener_encuesta_alumno(cookie, idEncuestaAlumno) if not encuesta["finalizada"]: return redirect(url_for('main.historial_encuestas_page'), code=REDIRECTION_FOUND) respuestas = cliente.obtener_respuestas_encuesta_alumno( cookie, idEncuestaAlumno, preguntas) convertir_true_false(respuestas) titulos = [{ 'url': 'main.visualizar_encuesta_general_page', 'titulo': 'General' }, { 'url': 'main.visualizar_encuesta_contenido_page', 'titulo': 'Contenido' }, { 'url': 'main.visualizar_encuesta_clases_page', 'titulo': 'Clases' }, { 'url': 'main.visualizar_encuesta_examenes_page', 'titulo': 'Exámenes' }, { 'url': 'main.visualizar_encuesta_docentes_page', 'titulo': 'Docentes' }] anterior_siguiente = { GRUPO_ENCUESTA_GENERAL: [ '', url_for('main.visualizar_encuesta_contenido_page', idEncuestaAlumno=idEncuestaAlumno) ], GRUPO_ENCUESTA_CONTENIDO: [ url_for('main.visualizar_encuesta_general_page', idEncuestaAlumno=idEncuestaAlumno), url_for('main.visualizar_encuesta_clases_page', idEncuestaAlumno=idEncuestaAlumno), ], GRUPO_ENCUESTA_CLASES: [ url_for('main.visualizar_encuesta_contenido_page', idEncuestaAlumno=idEncuestaAlumno), url_for('main.visualizar_encuesta_examenes_page', idEncuestaAlumno=idEncuestaAlumno), ], GRUPO_ENCUESTA_EXAMENES: [ url_for('main.visualizar_encuesta_clases_page', idEncuestaAlumno=idEncuestaAlumno), url_for('main.visualizar_encuesta_docentes_page', idEncuestaAlumno=idEncuestaAlumno), ], GRUPO_ENCUESTA_DOCENTES: [ url_for('main.visualizar_encuesta_examenes_page', idEncuestaAlumno=idEncuestaAlumno), '' ] } return render_template('pages/visualizar_encuesta_page.html', titulos=titulos, idEncuestaAlumno=idEncuestaAlumno, encuesta=encuesta, paso_activo=num_categoria, preguntas=preguntas, respuestas=respuestas, anterior_siguiente=anterior_siguiente)
def administrar_cursos_page(): cursos = ClienteAPI().obtener_todos_los_cursos_existentes(request.cookies) cursos = cursos if cursos else [] return render_template('pages/administrar_cursos_page.html', cursos=cursos)
def completar_encuesta(idEncuestaAlumno, cookie, num_categoria): cliente = ClienteAPI() preguntas = cliente.obtener_preguntas_encuesta(cookie, [num_categoria]) encuesta = cliente.obtener_encuesta_alumno(cookie, idEncuestaAlumno) if encuesta["finalizada"]: return redirect(url_for('main.historial_encuestas_page'), code=REDIRECTION_FOUND) encuesta_esta_completa = cliente.encuesta_alumno_esta_completa( cookie, idEncuestaAlumno) respuestas = cliente.obtener_respuestas_encuesta_alumno( cookie, idEncuestaAlumno, preguntas) convertir_true_false(respuestas) posibles_correlativas = cliente.obtener_todas_las_materias( cookie, ids_carreras=[encuesta["carrera"]["id_carrera"]]) for i in range(len(posibles_correlativas)): if posibles_correlativas[i]["id_materia"] == encuesta["materia"][ "id_materia"]: break posibles_correlativas.pop(i) docentes = cliente.obtener_docentes_del_curso( cookie, encuesta["curso"]["id_curso"]) horarios = generar_lista_horarios() tematicas = cliente.obtener_todas_las_tematicas(cookie) titulos = [{ 'url': 'main.completar_encuesta_general_page', 'titulo': 'General' }, { 'url': 'main.completar_encuesta_contenido_page', 'titulo': 'Contenido' }, { 'url': 'main.completar_encuesta_clases_page', 'titulo': 'Clases' }, { 'url': 'main.completar_encuesta_examenes_page', 'titulo': 'Exámenes' }, { 'url': 'main.completar_encuesta_docentes_page', 'titulo': 'Docentes' }] anterior_siguiente = { GRUPO_ENCUESTA_GENERAL: [ '', url_for('main.completar_encuesta_contenido_page', idEncuestaAlumno=idEncuestaAlumno) ], GRUPO_ENCUESTA_CONTENIDO: [ url_for('main.completar_encuesta_general_page', idEncuestaAlumno=idEncuestaAlumno), url_for('main.completar_encuesta_clases_page', idEncuestaAlumno=idEncuestaAlumno), ], GRUPO_ENCUESTA_CLASES: [ url_for('main.completar_encuesta_contenido_page', idEncuestaAlumno=idEncuestaAlumno), url_for('main.completar_encuesta_examenes_page', idEncuestaAlumno=idEncuestaAlumno), ], GRUPO_ENCUESTA_EXAMENES: [ url_for('main.completar_encuesta_clases_page', idEncuestaAlumno=idEncuestaAlumno), url_for('main.completar_encuesta_docentes_page', idEncuestaAlumno=idEncuestaAlumno), ], GRUPO_ENCUESTA_DOCENTES: [ url_for('main.completar_encuesta_examenes_page', idEncuestaAlumno=idEncuestaAlumno), '' ] } return render_template('pages/completar_encuesta_page.html', titulos=titulos, idEncuestaAlumno=idEncuestaAlumno, encuesta=encuesta, paso_activo=num_categoria, preguntas=preguntas, respuestas=respuestas, dias=DIAS, hora_desde=horarios[:-1], hora_hasta=horarios[1:], posibles_correlativas=posibles_correlativas, docentes=docentes, tematicas=tematicas, anterior_siguiente=anterior_siguiente, encuesta_esta_completa=encuesta_esta_completa)
def buscar_materias_page(): carreras = ClienteAPI().obtener_todas_las_carreras(request.cookies) return render_template('pages/buscar_materias_page.html', carreras=carreras)
def eliminar_plan_de_estudios_page(idPlanEstudios, token): ClienteAPI().eliminar_plan_de_estudios_alumno(request.cookies, token, idPlanEstudios) return redirect(url_for('main.planes_de_estudios_page'), code=REDIRECTION_FOUND)