コード例 #1
0
def obtenerCursosActivosXProfesor(idProfesor):
    try:
        semestreActivo = Semestre().getOne().id_semestre
    except:
        d = {}
        d['listaCursos'] = []
        d['cantCursos'] = 0
        return d
    #listaHorarios = Permiso_usuario_horario().getHorarioActivo(semestreActivo.id_semestre, idProfesor)
    #puh = Permiso_usuario_horario.query.filter(and_(Permiso_usuario_horario.id_semestre == semestreActivo.id_semestre, Permiso_usuario_horario.id_usuario == idProfesor)).subquery()
    #puh = Permiso_usuario_horario().getHorarioActivo(semestreActivo.id_semestre, idProfesor)
    puh = Permiso_usuario_horario.query.filter(
        and_(Permiso_usuario_horario.id_semestre == semestreActivo,
             Permiso_usuario_horario.id_usuario == idProfesor)).subquery()
    #print(puh)
    #listaHorarios = db.session.query(Horario,Permiso_usuario_horario).join(puh, puh.id_horario == Horario.id_horario).subquery()
    listaHorarios = db.session.query(
        Horario, Permiso_usuario_horario.id_permiso).join(
            Permiso_usuario_horario,
            Permiso_usuario_horario.id_horario == Horario.id_horario).filter(
                and_(Permiso_usuario_horario.id_semestre == semestreActivo,
                     Permiso_usuario_horario.id_usuario ==
                     idProfesor)).subquery()
    #listaHorarios = Horario.query.join(puh, puh.c.ID_HORARIO == Horario.id_horario).subquery()
    #print(listaHorarios)
    ##FURTHER QUERIES##
    #listaHorarios = db.session.query(Horario).join(puh, puh.ID_HORARIO == Horario.id_horario).subquery()
    listaCursos = Curso().getCursosActivos(semestreActivo).subquery()

    #print(listaCursos)

    data = db.session.query(
        listaCursos.c.ID_ESPECIALIDAD, listaCursos.c.ID_CURSO,
        listaCursos.c.NOMBRE, listaCursos.c.CODIGO, listaHorarios.c.ID_HORARIO,
        listaHorarios.c.NOMBRE, listaHorarios.c.ID_PERMISO).join(
            listaHorarios, listaCursos.c.ID_CURSO == listaHorarios.c.ID_CURSO)
    #data = db.session.query(listaCursos.c.id_curso, listaCursos.c.nombre, listaCursos.c.codigo, listaHorarios.c.nombre).join(listaHorarios, listaCursos.c.id_curso == listaHorarios.c.id_curso)
    #data = db.session.query(listaCursos.id_curso, listaCursos.nombre, listaCursos.codigo, listaHorarios.nombre).join(listaHorarios, listaCursos.id_curso == listaHorarios.id_curso)
    #data = db.session.query(Curso.id_curso, Curso.nombre, Curso.codigo, listaHorarios.nombre).join(listaHorarios, listaCursos.id_curso == listaHorarios.id_curso)
    #print(data)

    res = []

    for ide, idc, nomc, cod, idh, nomh, idpe in data.all():
        aux = {}
        aux['idEspecialidad'] = ide
        aux['idcurso'] = idc
        aux['nombre'] = nomc
        aux['codigo'] = cod
        aux['idhorario'] = idh
        aux['horario'] = nomh
        aux['permiso'] = idpe
        res.append(aux)

    d = {}
    d['listaCursos'] = res
    d['cantCursos'] = len(res)

    print(d)
    return d
コード例 #2
0
def cargaMasivaCursos(datos, idEspecialidad):
    semestre = Semestre().getOne()
    idSemestre = semestre.id_semestre  #
    print(datos)
    print(idEspecialidad)
    name = pathCargaMasivaCursoHorario + datos.filename
    data = datos.read()
    with open(name, 'wb') as file:
        file.write(data)
    df = pd.read_excel(name, enconding='latin1')
    longitud = len(df)

    for i in range(longitud):
        nombreCurso = df.iat[i, 0]
        codigoCurso = df.iat[i, 1]
        horarios = []
        horarios = str(df.iat[i, 2]).split(',')
        objCurso = Curso(id_especialidad=idEspecialidad,
                         id_semestre=idSemestre,
                         nombre=nombreCurso,
                         codigo=codigoCurso)
        idCurso = Curso().addOne(objCurso)
        for horario in horarios:
            horario = horario.replace(' ', '')
            Horario().addOne(horario, idCurso, idSemestre)
    return {'message': 'leyo bien'}
コード例 #3
0
def crearSolicitudRevisionProfesor(idActividad, idJpReviso):
    alumnosFaltantesCalificados = Alumno_actividad.query.filter(
        and_(Alumno_actividad.id_actividad == idActividad,
             Alumno_actividad.flg_calificado == 0)).all()
    d = {}
    if len(alumnosFaltantesCalificados) > 0:
        d['succeed'] = False
        d['message'] = "Falta alumnos por calificar"
        return d

    cursoActividad = db.session.query(
        Actividad.id_actividad,
        Curso.codigo).filter(Actividad.id_actividad == idActividad).join(
            Horario, Actividad.id_horario == Horario.id_horario).join(
                Curso, Horario.id_curso == Curso.id_curso).first()
    actividadAnalizada = Actividad.query.filter_by(
        id_actividad=idActividad).first()
    profesoresHorario = Permiso_usuario_horario.query.filter(
        and_(
            Permiso_usuario_horario.id_horario ==
            actividadAnalizada.id_horario,
            Permiso_usuario_horario.id_permiso == 1))
    semestre = Semestre().getOne()
    actividadEvaluada = Actividad.query.filter_by(
        id_actividad=idActividad).first()

    aux = Feedback_actividad(id_actividad=idActividad, id_jp_reviso=idJpReviso)

    aux2 = Feedback_actividad().addOne(aux)

    for profesor in profesoresHorario:
        profesorAnalizado = Usuario.query.filter_by(
            id_usuario=profesor.id_usuario).first()
        print(profesorAnalizado.email)
        envioCorreo(
            profesorAnalizado.email, "SEC2 - Registro de Notas",
            cursoActividad.codigo +
            " - Se registraron las notas de la Actividad: " +
            actividadEvaluada.nombre +
            ". Favor de revisar estas para aprobacion.")
        publicarNotificacionGeneral(
            semestre.id_semestre, profesor.id_usuario, cursoActividad.codigo +
            " - Se registraron las notas de la Actividad: " +
            actividadEvaluada.nombre +
            ". Favor de revisar estas para aprobacion.", idActividad)
    d['succeed'] = True
    d['message'] = "Notas publicadas"
    return d

    feedbackCreado = Feedback_actividad(
        id_actividad=idActividad,
        id_jp_reviso=idJpReviso,
    )

    idFeedbackActividad = Feedback_actividad().addOne(feedbackCreado)
    d = {}
    d['idFeedbackActividad'] = idFeedbackActividad
    return d
コード例 #4
0
def publicarNotificacionesAlumnos(idActividad):
    alumnosFaltantesCalificados = Alumno_actividad.query.filter(
        and_(Alumno_actividad.id_actividad == idActividad,
             Alumno_actividad.flg_calificado == 0)).all()
    d = {}
    if len(alumnosFaltantesCalificados) > 0:
        d['succeed'] = False
        d['message'] = "Falta alumnos por calificar"
        return d

    alumnosCalificados = Alumno_actividad.query.filter(
        and_(Alumno_actividad.id_actividad == idActividad,
             Alumno_actividad.flg_calificado == 1)).all()
    cursoActividad = db.session.query(
        Actividad.id_actividad,
        Curso.codigo).filter(Actividad.id_actividad == idActividad).join(
            Horario, Actividad.id_horario == Horario.id_horario).join(
                Curso, Horario.id_curso == Curso.id_curso).first()
    actividadEvaluada = Actividad.query.filter_by(
        id_actividad=idActividad).first()
    mensaje = cursoActividad.codigo + " - Se registro la nota de la Actividad: " + actividadEvaluada.nombre
    semestre = Semestre().getOne()

    for alumno in alumnosCalificados:
        alumnoAnalizado = Usuario.query.filter_by(
            id_usuario=alumno.id_alumno).first()
        print(alumnoAnalizado.email)
        envioCorreo(alumnoAnalizado.email, "SEC2 - Registro de Notas", mensaje)
        publicarNotificacionGeneral(semestre.id_semestre, alumno.id_alumno,
                                    mensaje, idActividad)

    Alumno_actividad().publicarNotas(idActividad)
    idHorario = db.session.query(
        Actividad.id_actividad,
        Horario.id_horario).filter(Actividad.id_actividad == idActividad).join(
            Horario, Actividad.id_horario == Horario.id_horario).first()
    profesoresHorario = Permiso_usuario_horario.query.filter(
        and_(Permiso_usuario_horario.id_horario == idHorario.id_horario,
             Permiso_usuario_horario.id_permiso == 1))

    for profesor in profesoresHorario:
        profesorAnalizado = Usuario.query.filter_by(
            id_usuario=profesor.id_usuario).first()
        print(profesorAnalizado.email)
        envioCorreo(
            profesorAnalizado.email, "SEC2 - Registro de Notas",
            cursoActividad.codigo +
            " - Se registraron las notas de la Actividad: " +
            actividadEvaluada.nombre)
        publicarNotificacionGeneral(
            semestre.id_semestre, profesor.id_usuario, cursoActividad.codigo +
            " - Se registraron las notas de la Actividad: " +
            actividadEvaluada.nombre, idActividad)

    d['succeed'] = True
    d['message'] = "Notas publicadas"
    return d
コード例 #5
0
def cargaMasivaProfesorJP(datos, idEspecialidad):
    semestre = Semestre().getOne()
    idSemestre = semestre.id_semestre
    name = pathCargaMasivaCursoHorario + datos.filename
    data = datos.read()
    with open(name, 'wb') as file:
        file.write(data)
    df = pd.read_excel(name, enconding='latin1')

    longitud = len(df)

    for i in range(longitud):
        codigoCurso = str(df.iat[i, 0])
        codigoPucp = str(df.iat[i, 1])
        nombreCompleto = str(df.iat[i, 2])
        aux = SplitNombres(nombreCompleto)
        nombres = aux[0]
        apellidoPaterno = aux[1]
        apellidoMaterno = aux[2]
        email = str(df.iat[i, 3])
        objUsuario = Usuario(nombre=nombres,
                             codigo_pucp=codigoPucp,
                             email=email,
                             clave=codigoPucp,
                             apellido_paterno=apellidoPaterno,
                             apellido_materno=apellidoMaterno,
                             flg_admin=0)
        idUsuario = Usuario().addOne(objUsuario)
        idCurso = Curso().getOneClave(codigoCurso, idSemestre)
        tipo = str(df.iat[i, 4])
        if tipo == "1":
            horarios = str(df.iat[i, 5]).split(',')
            for horario in horarios:
                horario = horario.replace(' ', '')
                print(idCurso, horario, idSemestre)
                idHorario = Horario().getOneClave(idCurso, idSemestre, horario)
                objUsuaHorario = Permiso_usuario_horario(
                    id_horario=idHorario,
                    id_usuario=idUsuario,
                    id_permiso=1,
                    id_semestre=idSemestre)
                Permiso_usuario_horario().addOne(objUsuaHorario)

        else:
            horarios = Horario().getAll(idCurso, idSemestre)
            for horario in horarios:

                idHorario = horario.id_horario
                objUsuaHorario = Permiso_usuario_horario(
                    id_horario=idHorario,
                    id_usuario=idUsuario,
                    id_permiso=3,
                    id_semestre=idSemestre)
                Permiso_usuario_horario().addOne(objUsuaHorario)

    return {'message': 'leyo bien'}
コード例 #6
0
def obtenerNombreSemestreActivo():
    semestreActivo = Semestre.getOne()
    s = {}
    if semestreActivo != None:
        s['id_semestre'] = semestreActivo.id_semestre
        s['nombre'] = semestreActivo.nombre
    else:
        s['id_semestre'] = 0
        s['nombre'] = '-'
    return s
コード例 #7
0
def listarSemestresNoActivos():
    semestres = Semestre().getAllNoActivos().all()
    lstSemestre = []
    for semestre in semestres:
        aux = {}
        aux['nombre'] = semestre.nombre
        aux['idSemestre'] = semestre.id_semestre
        lstSemestre.append(aux)

    return lstSemestre
コード例 #8
0
def obtenerlistaSemestresNoActivos():
    listaSemestres = Semestre.getAll()
    lista = list()
    for semestre in listaSemestres:
        c = {}
        c['id_semestre'] = semestre.id_semestre
        c['nombre'] = semestre.nombre
        lista.append(c)

    listaS = {}
    listaS['listaSemestres'] = lista

    return listaS
コード例 #9
0
def obtenerCursosxEspecialidad(idespecialidad):
    semestreActivo = Semestre().getOne()
    listaCursos = Curso.getCursosActivosxEspecialidad(
        semestreActivo.id_semestre, idespecialidad)
    lista = list()
    for curso in listaCursos:
        c = {}
        c['id_curso'] = curso.id_curso
        c['nombre'] = curso.nombre
        c['clave'] = curso.codigo
        lista.append(c)

    listaC = {}
    listaC['listaCursos'] = lista
    return listaC
コード例 #10
0
def listarAlumnosHorario(idHorario):
    semestreActivo = Semestre().getOne().id_semestre
    listaAlumnosHorario = Permiso_usuario_horario().getAllAlumnos(
        idHorario, semestreActivo)
    rpta = []
    for alumnos in listaAlumnosHorario:
        d = dict()
        alumno = Usuario().getOneId(alumnos.id_usuario)
        d['nombre'] = alumno.nombre
        d['codigoPucp'] = alumno.codigo_pucp
        d['apellidoPaterno'] = alumno.apellido_paterno
        d['apellidoMaterno'] = alumno.apellido_materno
        d['idUsuario'] = alumno.id_usuario
        rpta.append(d)
    return rpta
コード例 #11
0
def obtenerCursosActivosXProfesor(idProfesor):
    semestreActivo = Semestre().getOne()
    listaHorarios = Permiso_usuario_horario().getHorarioActivo(
        semestreActivo.id_semestre, idProfesor)

    res = []

    for horario in listaHorarios:
        if horario.id_permiso == 1:
            curso, hor = Horario().obtenerCurso(horario.id_horario)
            aux = {}
            aux['id_horario'] = horario.id_horario
            #t = Horario().getOne(horario.id_horario)
            aux['nombre_horario'] = hor.nombre
            aux['id_curso'] = curso.id_curso
            aux['nombre_curso'] = curso.nombre
            aux['codigo'] = curso.codigo
            res.append(aux)

    d = {}
    d['listaCursos'] = res
    d['cantCursos'] = len(res)
    """
    #listaHorarios = Permiso_usuario_horario().getHorarioActivo(semestreActivo.id_semestre, idProfesor)
    puh = Permiso_usuario_horario().getHorarioActivo(semestreActivo.id_semestre, idProfesor)
    print(puh)
    #listaHorarios = db.session.query(Horario).join(puh, puh.id_horario == Horario.id_horario).subquery()
    listaHorarios = db.session.query(Horario).join(puh, puh.ID_HORARIO == Horario.id_horario).subquery()
    listaCursos = Curso().getCursosActivos(semestreActivo)

    data = db.session.query(listaCursos.id_curso, listaCursos.nombre, listaCursos.codigo, listaHorarios.nombre).join(listaHorarios, listaCursos.id_curso == listaHorarios.id_curso)
    #data = db.session.query(Curso.id_curso, Curso.nombre, Curso.codigo, listaHorarios.nombre).join(listaHorarios, listaCursos.id_curso == listaHorarios.id_curso)

    res = []

    for idc, nomc, cod, nomh in data.all():
        aux = {}
        aux['idcurso'] = idc
        aux['nombre'] = nomc
        aux['codigo'] = cod
        aux['horario'] = nomh
        res.append(aux)

    d = {}
    d['listaCursos'] = res
    d['cantCursos'] = len(res)
    """
    return d
コード例 #12
0
def cargaMasivaHorarios(datos, idCurso, idEspecialidad):
    semestre = Semestre().getOne()
    idSemestre = semestre.id_semestre
    print("=" * 20)
    print(idSemestre)
    name = pathCargaMasivaAlumnoHorario + datos.filename
    data = datos.read()
    with open(name, 'wb') as file:
        file.write(data)
    doc = codecs.open(name, 'rU', 'latin1')
    for i in range(6):
        doc.readline()
    df = pd.read_csv(doc, sep='\t', encoding='latin1')
    #print(df)
    df['E-mail'] = df['E-mail'].apply(lambda x: getCorreoPucp(x))
    df['nombres'] = df['Nombre'].apply(lambda x: SplitNombres(x)[0])
    df['apellido_paterno'] = df['Nombre'].apply(lambda x: SplitNombres(x)[1])
    df['apellido_materno'] = df['Nombre'].apply(lambda x: SplitNombres(x)[2])
    longitud = len(df)

    for i in range(longitud):
        idHorario = Horario().addOne(str(df.iat[i, 2]), idCurso, idSemestre)
        codigoPucp = str(df.iat[i, 0])
        nombre = str(df.iat[i, 5])
        email = str(df.iat[i, 4])
        apellidoPaterno = str(df.iat[i, 6])
        apellidoMaterno = str(df.iat[i, 7])
        objUsuario = Usuario(nombre=nombre,
                             email=email,
                             apellido_paterno=apellidoPaterno,
                             apellido_materno=apellidoMaterno,
                             flg_admin=0,
                             codigo_pucp=codigoPucp,
                             clave=codigoPucp)
        idUsuario = Usuario().addOne(objUsuario)
        objAlumnoHorario = Permiso_usuario_horario(id_horario=idHorario,
                                                   id_usuario=idUsuario,
                                                   id_permiso=2,
                                                   id_semestre=idSemestre)
        Permiso_usuario_horario().addOne(objAlumnoHorario)

    return {'message': 'leyo bien'}
コード例 #13
0
def obtenerEspecialidadxSemestre():
    semestreActivo = Semestre().getOne()
    idsemestre = semestreActivo.id_semestre
    especialidades = Semestre_especialidad().obtenerEspecialidadActivo(
        idsemestre)
    #print(especialidades)
    lista = list()
    for especialidad in especialidades:
        idespecialidad = especialidad.id_especialidad
        #print(idespecialidad)
        esp = Especialidad().getOne(idespecialidad)
        c = {}
        c['id_especialidad'] = esp.id_especialidad
        c['nombre'] = esp.nombre
        lista.append(c)

    listaE = {}

    listaE['listaEspecialidades'] = lista

    return listaE
コード例 #14
0
def Login_Controlador(email, clave):
    usuario = Usuario().getOne(email, clave)
    semestreActivo = Semestre().getOne()
    #print(semestreActivo,usuario.flg_admin)
    if usuario is None:
        return {'message': 'error datos'}
    if semestreActivo == None and str(usuario.flg_admin) == "1":
        d = {}
        d['idUser'] = usuario.id_usuario
        d['codigoPUCP'] = usuario.codigo_pucp
        d['nombre'] = usuario.nombre + ' ' + usuario.apellido_paterno
        d['superUsuario'] = usuario.flg_admin
        d['profesor'] = 0
        d['jp'] = 0
        d['alumno'] = 0
        return d

    lista = Permiso_usuario_horario().getHorarioActivo(
        semestreActivo.id_semestre, usuario.id_usuario)
    contProfesor = 0
    contJP = 0
    contAlumno = 0
    for usuarioHorario in lista:
        if usuarioHorario.id_permiso == 1:
            contProfesor = 1
        elif usuarioHorario.id_permiso == 2:
            contAlumno = 1
        else:
            contJP = 1
    d = {}
    d['idUser'] = usuario.id_usuario
    d['codigoPUCP'] = usuario.codigo_pucp
    d['nombre'] = usuario.nombre + ' ' + usuario.apellido_paterno
    d['superUsuario'] = usuario.flg_admin
    d['profesor'] = contProfesor
    d['jp'] = contJP
    d['alumno'] = contAlumno

    return d
コード例 #15
0
def CrearActividad(idhorario, Nombre, tipo1, descripcion, fechaInicio,
                   fechaFin, flag_confianza, flag_entregable1,
                   idUsuarioCreador, flgMulticalificable):
    semestre = Semestre().getOne()
    idSemestre = semestre.id_semestre

    actividadObjeto = Actividad(id_horario=idhorario,
                                descripcion=descripcion,
                                id_semestre=idSemestre,
                                nombre=Nombre,
                                flg_activo=1,
                                flg_entregable=flag_entregable1,
                                flg_confianza=flag_confianza,
                                fecha_inicio=convertDatetime(fechaInicio),
                                fecha_fin=convertDatetime(fechaFin),
                                id_usuario_creador=idUsuarioCreador,
                                tipo=tipo1,
                                flg_multicalificable=flgMulticalificable)

    idActividad = Actividad().addOne(actividadObjeto)

    listaAlumnos = Permiso_usuario_horario().getAll(idSemestre, idhorario)
    print(idSemestre, idhorario)
    listaIdAlumnos = []
    print(listaAlumnos)
    for usuario in listaAlumnos:
        if usuario.id_permiso == 2:  #Alumnos
            listaIdAlumnos.append(usuario.id_usuario)

    for idalumno in listaIdAlumnos:
        alumnoActividadObjeto = Alumno_actividad(id_actividad=idActividad,
                                                 id_alumno=idalumno)
        try:
            Alumno_actividad().addOne(alumnoActividadObjeto)
        except:
            pass

    return
コード例 #16
0
def obtenerCursosActivosXAlumno(idAlumno):
    semestreActivo = Semestre().getOne()
    listaHorarios = Permiso_usuario_horario().getHorarioActivo(semestreActivo.id_semestre, idAlumno)

    res = []

    for horario in listaHorarios:
        if horario.id_permiso == 2:
            curso, hor = Horario().obtenerCurso(horario.id_horario)
            #print(curso)
            aux = {}
            aux['id_curso'] = curso.id_curso
            aux['nombre'] = curso.nombre
            aux['codigo'] = curso.codigo
            aux['nombre_horario'] = hor.nombre
            aux['id_horario'] = hor.id_horario
            res.append(aux)

    d = {}
    d['listaCursos'] = res
    d['cantCursos'] = len(res)

    return d
コード例 #17
0
def crearSemestre(nombreSemestre):
    objSemestre = Semestre(nombre=nombreSemestre, flg_activo=0)
    Semestre().addOne(objSemestre)
    return {'message': 'Se agrego correctamente'}
コード例 #18
0
def activarSemestre(idSemestre):
    Semestre().activar(idSemestre)
    Semestre_especialidad().activacionSemestre(idSemestre)
    return {'message': 'Se agrego correctamente'}
コード例 #19
0
def desactivarSemestre(idSemestre):
    m = Semestre().desactivar(idSemestre)
    return m