def eliminarActividad(idActividad):
    actividad = Actividad().getOne(idActividad)
    nowStr = datetime.datetime.now().__str__()
    print(nowStr)
    now = datetime.datetime.strptime(nowStr, '%Y-%m-%d %H:%M:%S.%f')
    fechaInicioActividad = datetime.datetime.strptime(actividad.fecha_inicio,
                                                      '%Y-%m-%d %H:%M:%S.%f')
    if (now >= fechaInicioActividad):
        return {'message': 'error - Actividad en proceso'}
    else:
        try:
            Actividad().deleteOne(idActividad)
            return {'message': 'Se elimino correctamente'}
        except:
            return {'message': 'Error no se elimino correctamente'}
def crearCoEvaluacion(idActividad, listaPregunta):
    encuestaObjecto = Encuesta(tipo='COEVALUACION',
                               nombre='Coevaluacion de la actividad ' +
                               str(idActividad),
                               descripcion='SEGUNDO SERVICIO',
                               flg_especial=0)
    idEncuesta = Encuesta().addOne(encuestaObjecto)
    listaIdPreguntas = []
    for pregunta in listaPregunta:

        auxPreguntaObjecto = Pregunta(descripcion=pregunta['pregunta'],
                                      tipo_pregunta=3)
        aux = Pregunta().addOne(auxPreguntaObjecto)
        listaIdPreguntas.append(aux)

    for idPregunta in listaIdPreguntas:
        Encuesta_preguntaObjecto = Encuesta_pregunta(id_encuesta=idEncuesta,
                                                     id_pregunta=idPregunta)
        Encuesta_pregunta().addOne(Encuesta_preguntaObjecto)
    idHorario = Actividad().getOne(idActividad).id_horario
    Horario_encuestaObjecto = Horario_encuesta(id_horario=idHorario,
                                               id_encuesta=idEncuesta,
                                               id_actividad=idActividad)
    Horario_encuesta().addOne(Horario_encuestaObjecto)
    return
Example #3
0
def ingresarComentarioAlumno(idActividad, idAlumno, comentario):
    # test if exists
    d = ResponseMessage()
    try:
        reg_comment = Alumno_actividad_calificacion.query.filter(
            and_(Alumno_actividad_calificacion.id_alumno == idAlumno,
                 Alumno_actividad_calificacion.id_actividad ==
                 idActividad)).first()
        if reg_comment is None:
            d.opcode = 1
            d.errcode = 1
            d.message = "Alumno o actividad no vĂ¡lidas"
        else:
            reg_comment.comentario_alumno = comentario
            u = Usuario().getOneId(reg_comment.id_calificador)
            act = Actividad().getOne(idActividad)
            envioCorreo(
                u.email, 'COMENTARIO EN LA ACTIVIDAD {} DE {} {}'.format(
                    act.nombre, u.nombre, u.apellido_paterno), comentario)

            db.session.commit()
            d.message = "Comentario agregado correctamente"
    except Exception as ex:
        d.opcode = 1
        d.errcode = 2
        d.message = str(ex)

    #Alumno_actividad_calificacion().updateComentarioAlumno(idActividad,idAlumno,reg_comment)
    return d.jsonify()
Example #4
0
def responderComentarioAlumno(idActividad, idAlumno, idProfesor, respuesta):
    # test if exists
    d = ResponseMessage()
    try:
        reg_resp = Alumno_actividad_calificacion.query.filter(
            and_(Alumno_actividad_calificacion.id_alumno == idAlumno,
                 Alumno_actividad_calificacion.id_actividad ==
                 idActividad)).first()
        if reg_resp is None:
            d.opcode = 1
            d.errcode = 1
            d.message = "Alumno o actividad no vĂ¡lidas"
        # elif reg_resp.id_jp != idProfesor:
        #     d.opcode = 1
        #     d.errcode = 1
        #     d.message = "No tiene autoridad para responder el comentario."
        else:
            reg_resp.comentario_jp = respuesta
            db.session.commit()
            u = Usuario().getOneId(idAlumno)
            act = Actividad().getOne(idActividad)
            envioCorreo(
                u.email, 'RESPUESTA DE COMENTARIO EN LA ACTIVIDAD {}'.format(
                    act.nombre), respuesta)
            d.message = "Respuesta agregada correctamente"
    except Exception as ex:
        d.opcode = 1
        d.errcode = 2
        d.message = str(ex)

    #Alumno_actividad_calificacion().updateComentarioJP(idActividad,idAlumno,idProfesor,reg_resp)
    return d.jsonify()
def EditarActividad(idactividad, Nombre, tipo1, descripcion, hora_inicio,
                    hora_fin, flag_confianza, flag_entregable,
                    flg_multicalificable):
    fecha_inicio = convertDatetime(hora_inicio)
    fecha_fin = convertDatetime(hora_fin)
    Actividad().updateOne(idactividad, Nombre, tipo1, descripcion,
                          fecha_inicio, fecha_fin, flag_confianza,
                          flag_entregable, flg_multicalificable)
    return
Example #6
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'}
Example #7
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
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 listarActividad(idHorario):
    listaActividad = Actividad().listar(idHorario).all()
    rpta = []

    for actividad in listaActividad:
        d = actividad.json()
        try:
            d['idRubrica'] = Rubrica.query.filter(
                and_(Rubrica.id_actividad == d['idActividad'],
                     Rubrica.tipo == 4)).first().id_rubrica
        except:
            d['idRubrica'] = None
        rpta.append(d)
    return rpta
Example #10
0
def publicarParaRevision(idActividad, idJpReviso):
    d = {}
    actividad = Actividad.getOne(idActividad)
    if actividad.flg_confianza == 1:
        aux = publicarNotificacionesAlumnos(idActividad)
        if aux['succeed'] == False:
            d['succeed'] = False
            d['message'] = "Falta corregir alumnos en la Actividad"
            return d
        else:
            d['succeed'] = True
            d['message'] = "Notas publicadas"
            return d
    if actividad.flg_confianza == 0:
        return crearSolicitudRevisionProfesor(idActividad, idJpReviso)
Example #11
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 mostrarEntregable(idActividad, idUsuario):
    actividad = Actividad().getOne(idActividad)
    if actividad.tipo == 'I':
        listaEntregables = Entregable().getAll(idActividad, idUsuario)
        d = []

        for entregable in listaEntregables:
            ##print(entregable.json())
            d.append(entregable.json())
        return d
    else:
        listaIntegrante = Grupo_alumno_horario().getAll(idUsuario)
        d = []
        for integrante in listaIntegrante:
            listaEntregables = Entregable().getAll(idActividad,
                                                   integrante.id_usuario)
            for entregable in listaEntregables:
                d.append(entregable.json())
        return d
Example #13
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 obtenerRubricasPasadas(idUsuario, idCurso):
    listaHorarios = Horario.obtenerHorariosXCurso(idCurso)

    d = {}
    aux = []
    for horario in listaHorarios:
        listaRubricas = Actividad.obtenerRubricasXIdUsuario(
            horario.id_horario, idUsuario)
        if len(listaRubricas) != 0:
            for rubrica in listaRubricas:
                aux.append(rubrica)

    aux2 = []
    for rubrica in aux:
        aux3 = obtenerRubricaXidRubrica(rubrica.id_rubrica)
        aux2.append(aux3)

    if len(aux2) == 0:
        d['respuesta'] = 0
    else:
        d['respuesta'] = 1
        d['rubricas'] = aux2

    return d