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)
示例#2
0
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)
示例#8
0
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)
示例#9
0
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)
示例#10
0
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
                           )
示例#12
0
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"))
示例#14
0
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"))
示例#15
0
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)
示例#16
0
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:])
示例#17
0
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)
示例#19
0
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)
示例#20
0
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)