示例#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
示例#2
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
示例#3
0
def editarNotaAlumno(idActividad, idAlumno, idRubrica, idJpAnt, idJpN, nota,
                     listaNotaAspectos, flgFalta, flgCompleto):
    aux = Alumno_actividad_calificacion().editarNotaAlumno(
        idActividad, idAlumno, idJpAnt, idJpN, nota, flgFalta, flgCompleto)
    print(idActividad, idAlumno, idRubrica)
    #Alumno_actividad_calificacion().updateOneNota(idActividad,idAlumno,idRubrica,nota)
    for notaAspecto in listaNotaAspectos:
        idAspecto = notaAspecto['idAspecto']
        Alumno_nota_aspecto().updateNota(idActividad, idRubrica, idAspecto,
                                         idAlumno, notaAspecto['nota'],
                                         notaAspecto['comentario'])
        listaNotaIndicador = notaAspecto['listaNotaIndicador']

        for notaIndicador in listaNotaIndicador:
            Alumno_nota_indicador().updateNota(idActividad, idRubrica,
                                               idAspecto, idAlumno,
                                               notaIndicador['idIndicador'],
                                               notaIndicador['nota'],
                                               notaIndicador['comentario'])

    d = {}
    d['message'] = "succeed"
    return d
示例#4
0
def listarAlumnosNotas(idActividad):
    idRubricaEvaluacion = Rubrica().getIdRubricaEvaluacion(idActividad)
    lstAlumnosCalificados = Alumno_actividad_calificacion().getAllAlumnos(
        idActividad, idRubricaEvaluacion)

    d = {}
    notas = []
    faltas = 0
    for reg in lstAlumnosCalificados:
        try:
            notas.append(int(float(reg.nota)))

            if reg.flg_falta == 1:
                faltas += 1
        except Exception as ex:
            print(reg)
            print(str(ex))
            print("Error en castear la nota")

    d['listaNotas'] = notas
    notas = dict(Counter(notas))
    frecuencia = [(k, v) for k, v in notas.items()]
    d['notaFrecuencia'] = []
    for nota, frecuencia in frecuencia:
        aux = {}
        aux['nota'] = nota
        aux['frecuencia'] = frecuencia
        d['notaFrecuencia'].append(aux)

    cantidadNotas = len(d['listaNotas'])

    d['cantidadNotas'] = cantidadNotas - faltas
    d['cantidadFalta'] = faltas
    d['cantidadTotal'] = cantidadNotas

    return d