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
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'}
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
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
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'}
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
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
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
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
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'}
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
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
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
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
def crearSemestre(nombreSemestre): objSemestre = Semestre(nombre=nombreSemestre, flg_activo=0) Semestre().addOne(objSemestre) return {'message': 'Se agrego correctamente'}
def activarSemestre(idSemestre): Semestre().activar(idSemestre) Semestre_especialidad().activacionSemestre(idSemestre) return {'message': 'Se agrego correctamente'}
def desactivarSemestre(idSemestre): m = Semestre().desactivar(idSemestre) return m