Beispiel #1
0
def obtenerNotasFinales(idActividad, idRubrica):
    actividad = Actividad().getOne(idActividad)
    tipo = actividad.tipo
    rpta = []
    if tipo == 'I':
        lstIdAlumnos = [
            reg.id_alumno
            for reg in Alumno_actividad().getAllAlumnos(idActividad)
        ]

        listaAlumnos = Alumno_actividad_calificacion().getAllAlumnos(
            idActividad, idRubrica)
        for alumno in listaAlumnos:
            d = {}
            auxAl = Usuario().getOneId(alumno.id_alumno)
            d['idAlumno'] = alumno.id_alumno
            lstIdAlumnos.remove(alumno.id_alumno)
            d['codigoPucp'] = auxAl.codigo_pucp
            d['nombreAlumno'] = auxAl.nombre + " " + auxAl.apellido_paterno + " " + auxAl.apellido_materno
            if alumno.flg_falta == 1:
                d['nota'] = 'F'
            else:
                d['nota'] = alumno.nota
            rpta.append(d)
        for idAlumno in lstIdAlumnos:
            d = {}
            auxAl = Usuario().getOneId(idAlumno)
            d['idAlumno'] = idAlumno
            d['codigoPucp'] = auxAl.codigo_pucp
            d['nombreAlumno'] = auxAl.nombre + " " + auxAl.apellido_paterno + " " + auxAl.apellido_materno
            d['nota'] = '--'
            rpta.append(d)
    else:
        listarGrupos = Alumno_actividad().getAllGrupos(idActividad)
        for grupo in listarGrupos:
            d = {}
            auxGrupo = Grupo().getOne(grupo.id_grupo).first()
            d['idGrupo'] = auxGrupo.id_grupo
            d['nombreGrupo'] = auxGrupo.nombre
            print(d)
            auxAl = Alumno_actividad().getAlumnoGrupo(auxGrupo.id_grupo,
                                                      idActividad).first()
            auxAl2 = Alumno_actividad_calificacion().getNotaGrupo(
                idActividad, auxAl.id_alumno, idRubrica)
            if auxAl2 != None:
                d['nota'] = auxAl2.nota
            else:
                d['nota'] = None
            rpta.append(d)
    r = {}
    r['listaNotas'] = rpta
    return r
Beispiel #2
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
Beispiel #3
0
def asignarGrupoGeneral(idActividad):
    idHorario = Actividad().getOne(idActividad).id_horario
    listaGrupos = Grupo_alumno_horario().getAllGeneral(
        idHorario).all()  ##SOLO SON LOS GENERALES
    if listaGrupos == None:
        return {'message': 'Error no hay grupos definidos para el horario'}

    for _, grupo in listaGrupos:
        Alumno_actividad().updateGrupo(idActividad, grupo.id_usuario,
                                       grupo.id_grupo)

    return {'message': 'Realizado correctamente'}
Beispiel #4
0
def obtenerAlumnosEntregableEntregado(idActividad):
    tipoActividad = Actividad().getOne(idActividad).tipo

    if tipoActividad == 'I':
        listaAlumnos = Alumno_actividad().getAllAlumnos(idActividad)

        alumnosEntregableEntregado = []
        for alumno in listaAlumnos:
            entregable = Entregable().getAll(idActividad, alumno.id_alumno)
            d = {}
            d['idAlumno'] = alumno.id_alumno
            aux = Usuario().getOneId(alumno.id_alumno)
            d['codigoPUCP'] = aux.codigo_pucp
            d['nombre'] = aux.nombre + " " + aux.apellido_paterno
            d['entregables'] = []
            if entregable != None:
                for e in entregable:
                    d['entregables'].append(e.json())
            alumnosEntregableEntregado.append(d)

        rpta = {}
        rpta['lista'] = alumnosEntregableEntregado
        rpta['cantidad'] = len(alumnosEntregableEntregado)
        return rpta
    else:
        ##try:
        listarGrupos = Alumno_actividad().getAllGrupos(idActividad)

        lstGrupos = []
        for grupo in listarGrupos:
            idGrupo = grupo.id_grupo
            d = dict()

            d['idGrupo'] = idGrupo

            d['nombreGrupo'] = Grupo().getOne(idGrupo).first().nombre
            lstGrupos.append(d)
        return lstGrupos
        ##except:
        """
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
Beispiel #6
0
def listaAlumnos(idActividad):
    ## ver si es grupal o indiviual

    listaAlumnos = Alumno_actividad().getAllAlumnos(idActividad)
    alumnos = []
    for alumno in listaAlumnos:
        d = {}
        d['idAlumno'] = alumno.id_alumno
        aux = Usuario().getOneId(alumno.id_alumno)
        d['codigoPUCP'] = aux.codigo_pucp
        d['nombre'] = aux.nombre + " " + aux.apellido_paterno
        alumnos.append(d)
    return alumnos
    """
Beispiel #7
0
def listarCompanherosCalificar(idActividad, idUsuario):
    idGrupo = Alumno_actividad().getIdGrupo(idActividad, idUsuario)
    listaIntegrante = Grupo_alumno_horario().getAll(idGrupo)
    rpta = []
    for integrante in listaIntegrante:
        if str(integrante.id_usuario) != str(idUsuario):
            d = dict()
            alumno = Usuario().getOneId(integrante.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
Beispiel #8
0
def calificarAlumno(idActividad, idAlumno, idRubrica, idJp, nota,
                    listaNotaAspectos, flgFalta, flgCompleto):
    Alumno_actividad().calificarAlumno(idActividad, idAlumno)

    calificacionIngresada = Alumno_actividad_calificacion(
        id_actividad=idActividad,
        id_alumno=idAlumno,
        id_rubrica=idRubrica,
        id_calificador=idJp,
        nota=nota,
        fecha_revisado=func.current_timestamp(),
        flg_completo=flgCompleto,
        flg_falta=flgFalta)

    aux = Alumno_actividad_calificacion().addOne(calificacionIngresada)

    for notaAspecto in listaNotaAspectos:
        idAspecto = notaAspecto['idAspecto']
        notaAspectoObjeto = Alumno_nota_aspecto(
            id_actividad=idActividad,
            id_alumno=idAlumno,
            id_rubrica=idRubrica,
            id_aspecto=idAspecto,
            id_calificador=idJp,
            nota=notaAspecto['nota'],
            comentario=notaAspecto['comentario'])
        Alumno_nota_aspecto().addOne(notaAspectoObjeto)

        listaNotaIndicador = notaAspecto['listaNotaIndicador']

        for notaIndicador in listaNotaIndicador:
            notaIndicadorObjeto = Alumno_nota_indicador(
                id_actividad=idActividad,
                id_alumno=idAlumno,
                id_rubrica=idRubrica,
                id_aspecto=idAspecto,
                id_calificador=idJp,
                id_indicador=notaIndicador['idIndicador'],
                nota=notaIndicador['nota'],
                comentario=notaIndicador['comentario'],
            )
            Alumno_nota_indicador().addOne(notaIndicadorObjeto)

    d = {}
    d['message'] = "succeed"
    return d
Beispiel #9
0
def crearGrupo(idActividad, grupos):
    idHorario = Actividad().getOne(idActividad).id_horario

    for grupo in grupos:
        objGrupo = Grupo(nombre=grupo['nombre'], flg_grupo_general=0)
        idGrupo = Grupo().addOne(objGrupo)  # agrego grupo a la bd
        for alumno in grupo['lstAlumnos']:

            objAlumnoInGrupo = Grupo_alumno_horario(
                id_grupo=idGrupo,
                id_horario=idHorario,
                id_usuario=alumno['idAlumno'])
            Grupo_alumno_horario().addOne(objAlumnoInGrupo)
            Alumno_actividad().updateGrupo(idActividad, alumno['idAlumno'],
                                           idGrupo)

            #MODULO ACTUALIZAR SUS ID GRUPOS EN ALUMNO ACTIVIDAD

    return {"message": "realizado"}
def obtenerRubricaCoevaluacion(idActividad, idAlumnoConsultando):
    idRubrica = Rubrica.query.filter(
        and_(Rubrica.id_actividad == idActividad, Rubrica.tipo == 3,
             Rubrica.flg_activo == 1)).first()
    if idRubrica is not None:
        nombreRubrica = Rubrica.obtenerRubrica(idRubrica)
        d = {}
        d['idRubrica'] = idRubrica
        d['nombreRubrica'] = nombreRubrica.nombre
        d['fechaRegistro'] = nombreRubrica.fecha_registro.__str__()
        d['flgRubricaEspecial'] = nombreRubrica.flg_rubrica_especial
        d['idUsuarioCreador'] = nombreRubrica.id_usuario_creador
        d['tipo'] = nombreRubrica.tipo

        aspectos = []
        listaAspectos = Rubrica_aspecto.obtenerAspectos(idRubrica)

        for aspecto in listaAspectos:
            if aspecto.descripcion == "Evaluacion a miembros del grupo":
                grupoAnalizado = Alumno_actividad.query(
                    Alumno_actividad.id_grupo).filter(
                        Alumno_actividad.id_actividad == idActividad,
                        Alumno_actividad.id_alumno ==
                        idAlumnoConsultando).first()
                listaAlumnosCoev = Grupo_alumno_horario.query(
                    Grupo_alumno_horario.id_usuario).filter(
                        and_(
                            Grupo_alumno_horario.id_grupo ==
                            grupoAnalizado.id_grupo,
                            Grupo_alumno_horario.id_usuario !=
                            idAlumnoConsultando)).all()
                aux = {}
                aux['idAspecto'] = aspecto.id_aspecto
                aux['descripcion'] = aspecto.descripcion
                aux['informacion'] = aspecto.informacion
                aux['puntajeMax'] = aspecto.puntaje_max
                aux['tipoClasificacion'] = aspecto.tipo_clasificacion
                aux['flgGrupal'] = aspecto.flg_grupal
                indicadores = []
                for alumno in listaAlumnosCoev:
                    indicadorCoev = Indicador.query(
                        Indicador.id_indicador).join(
                            Rubrica_aspecto_indicador,
                            Rubrica_aspecto_indicador.id_aspecto == aspecto.
                            id_aspecto).filter(Indicador.id_alumno ==
                                               alumno.id_usuario).first()
                    aux2 = {}
                    aux2['idIndicador'] = indicadorCoev.id_indicador
                    aux2['descripcion'] = indicadorCoev.descripcion
                    aux2['informacion'] = indicadorCoev.informacion
                    aux2['puntajeMax'] = indicadorCoev.puntaje_max
                    niveles = []
                    listaNiveles = Rubrica_aspecto_indicador_nivel.obtenerNiveles(
                        idRubrica, indicadorCoev.id_indicador)
                    for nivel in listaNiveles:
                        aux3 = {}
                        aux3['idNivel'] = nivel.id_nivel
                        aux3['descripcion'] = nivel.descripcion
                        aux3['grado'] = nivel.grado
                        aux3['puntaje'] = nivel.puntaje
                        niveles.append(aux3)
                    aux2['listaNiveles'] = niveles
                    aux2['cantNiveles'] = len(niveles)
                    indicadores.append(aux2)
                aux['listaIndicadores'] = indicadores
                aux['cantIndicadores'] = len(indicadores)
                aspectos.append(aux)

            else:
                aux = {}
                aux['idAspecto'] = aspecto.id_aspecto
                aux['descripcion'] = aspecto.descripcion
                aux['informacion'] = aspecto.informacion
                aux['puntajeMax'] = aspecto.puntaje_max
                aux['tipoClasificacion'] = aspecto.tipo_clasificacion
                aux['flgGrupal'] = aspecto.flg_grupal
                indicadores = []
                listaIndicadores = Rubrica_aspecto_indicador.obtenerIndicadores(
                    idRubrica, aspecto.id_aspecto)
                for indicador in listaIndicadores:
                    aux2 = {}
                    aux2['idIndicador'] = indicador.id_indicador
                    aux2['descripcion'] = indicador.descripcion
                    aux2['informacion'] = indicador.informacion
                    aux2['puntajeMax'] = indicador.puntaje_max
                    niveles = []
                    listaNiveles = Rubrica_aspecto_indicador_nivel.obtenerNiveles(
                        idRubrica, indicador.id_indicador)
                    for nivel in listaNiveles:
                        aux3 = {}
                        aux3['idNivel'] = nivel.id_nivel
                        aux3['descripcion'] = nivel.descripcion
                        aux3['grado'] = nivel.grado
                        aux3['puntaje'] = nivel.puntaje
                        niveles.append(aux3)
                    aux2['listaNiveles'] = niveles
                    aux2['cantNiveles'] = len(niveles)
                    indicadores.append(aux2)
                aux['listaIndicadores'] = indicadores
                aux['cantIndicadores'] = len(indicadores)
                aspectos.append(aux)
        d['listaAspectos'] = aspectos
        d['cantAspectos'] = len(aspectos)
        return d

    else:
        d = {}
        d['succeed'] = False
        d['message'] = "No existe Rubrica"
        return d
Beispiel #11
0
def obtenerGrupo(idUsuario, idActividad):
    try:
        idGrupo = Alumno_actividad().getIdGrupo(idActividad, idUsuario)
    except:
        return {'idGrupo': 0}
    return {'idGrupo': idGrupo}