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
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()
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
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'}
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
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)
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
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