def get(self, id): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 return Apoderado.objects(id=id).first().to_dict()
def delete(self, id): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 apoderado = Apoderado.objects(id=id).first() apoderado.activo = False apoderado.save() return {'Response': 'borrado'}
def get(self): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 apoderados = Apoderado.objects(activo=True).all() response = [] for apoderado in apoderados: if apoderado.activo: response.append(apoderado.to_dict()) return response
def get(self, id_apoderado, id_alumno): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 apoderado = Apoderado.objects(id=id_apoderado).first() alumno = Alumno.objects(id=id_alumno).first() apoderado.alumno = alumno apoderado.save() return {'Response': 'exito'}
def get(self): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 response = [] eventos = [] if profesor != None or administrador != None: eventos = Evento.objects().all() if alumno != None: for evento in Evento.objects().all(): if alumno.curso in evento.cursos: eventos.append(evento) if apoderado != None: for evento in Evento.objects().all(): if apoderado.alumno.curso in evento.cursos: eventos.append(evento) for evento in eventos: if not (evento.eliminado) and evento.activo: response.append(evento.to_dict()) return response
def post(self): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'},401 #trabajar directamente con el usuario que cambia contraseña user = None if alumno != None: user = alumno elif apoderado != None: user = apoderado elif administrador != None: user = administrador elif profesor != None: user = profesor if user ==None: return {'message':'invalid_user'} #Obtener los campos del formulario de cambio de contraseña data = request.data.decode() data = json.loads(data) #Validar que la contraseña actual sea valida if user.check_password(data['actual_password']): #Cambiar contraseña user.encrypt_password(data['new_password']) user.save() return {'message':'great'} else: return {"message":"incorrect_password"}
def get(self, id): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 labels = [] data = [] prueba = Prueba.objects(id=id).first() evaluaciones = Evaluacion.objects(prueba=prueba).all() for pregunta in prueba.preguntas: labels.append("pregunta " + str(pregunta.numero_pregunta)) for curso in Curso.objects().all(): if prueba.asignatura in curso.asignaturas: data_curso = [] for pregunta in prueba.preguntas: cantidad_correctas = 0 for evaluacion in evaluaciones: if evaluacion.alumno.curso == curso: for respuesta in evaluacion.respuestas: if respuesta.numero_pregunta == pregunta.numero_pregunta: if respuesta.correcta: cantidad_correctas = cantidad_correctas + 1 data_curso.append(cantidad_correctas) data.append({"data": data_curso, "label": curso.nombre}) return {"labels": labels, "data": data}
def get(self, id_evaluacion): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 evaluacion = Evaluacion.objects(id=id_evaluacion).first() rowsData = [] rowsData.append({ 'id': str(evaluacion.alumno.id), 'nombres': evaluacion.alumno.nombres, 'apellido_paterno': evaluacion.alumno.apellido_paterno, 'apellido_materno': evaluacion.alumno.apellido_materno, 'rut': evaluacion.alumno.rut }) for row in rowsData: for respuesta in evaluacion.respuestas: if evaluacion.prueba.tipo != "TAREA": if respuesta.alternativa == "O": row[str(respuesta.numero_pregunta)] = "" else: row[str( respuesta.numero_pregunta)] = respuesta.alternativa else: if respuesta.correcta: row[str(respuesta.numero_pregunta)] = "correcta" else: row[str(respuesta.numero_pregunta)] = "incorrecta" return rowsData
def get(self, id): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 curso = Curso.objects(id=id).first() labels = [] data = [] for asignatura in curso.asignaturas: labels.append(asignatura.nombre) suma_parcial_pruebas = 0 for prueba in Prueba.objects(asignatura=asignatura.id, tipo="ENSAYO").all(): suma_parcial_evaluaciones = 0 for evaluacion in Evaluacion.objects(prueba=prueba.id).all(): print(evaluacion.alumno.curso) if evaluacion.alumno.curso == curso: suma_parcial_evaluaciones = suma_parcial_evaluaciones + evaluacion.puntaje if Evaluacion.objects(prueba=prueba.id).count() > 0: suma_parcial_evaluaciones = suma_parcial_evaluaciones / ( Evaluacion.objects(prueba=prueba.id).count()) suma_parcial_evaluaciones = int(suma_parcial_evaluaciones) suma_parcial_pruebas = suma_parcial_pruebas + suma_parcial_evaluaciones if Prueba.objects(asignatura=asignatura.id, tipo="ENSAYO").count() > 0: suma_parcial_pruebas = int( suma_parcial_pruebas / (Prueba.objects( asignatura=asignatura.id, tipo="ENSAYO").count())) data.append(suma_parcial_pruebas) return {"labels": labels, "data": data}
def get(self, id): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 labels = [] data = [] prueba = Prueba.objects(id=id).first() for curso in Curso.objects().all(): if prueba.asignatura in curso.asignaturas: cantidad = 0 promedio = 0 labels.append(curso.nombre) for evaluacion in Evaluacion.objects(prueba=prueba): if evaluacion.alumno.curso == curso: cantidad = cantidad + 1 promedio = promedio + evaluacion.puntaje if cantidad > 0: promedio = int(promedio / cantidad) data.append(promedio) return {"labels": labels, "data": [data]}
def post(self): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 data = request.data.decode() data = json.loads(data) profesor = Profesor() profesor.nombres = data['nombres'] profesor.apellido_paterno = data['apellido_paterno'] profesor.apellido_materno = data['apellido_materno'] profesor.telefono = data['telefono'] profesor.email = data['email'] profesor.encrypt_password(data['rut']) profesor.rut = data['rut'] direccion = Direccion(calle=data['calle'], numero=data['numero'], comuna=data['comuna'], cas_dep_of=data['cas_dep_of']) profesor.direccion = direccion asignatura = Asignatura.objects(id=data['asignatura']).first() profesor.asignatura = asignatura.id profesor.save() return {'Response': 'exito', 'id': str(profesor.id)}
def get(self, id_prueba, id_curso): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 rowsData = [] prueba = Prueba.objects(id=id_prueba).first() curso = Curso.objects(id=id_curso).first() for alumno in Alumno.objects(curso=curso, activo=True).all(): if Evaluacion.objects(prueba=prueba, alumno=alumno).first() == None: rowsData.append({ 'id': str(alumno.id), 'nombres': alumno.nombres, 'apellido_paterno': alumno.apellido_paterno, 'apellido_materno': alumno.apellido_materno, 'rut': alumno.rut }) for row in rowsData: for pregunta in prueba.preguntas: row[str(pregunta.numero_pregunta)] = "" return rowsData
def put(self, id): args = self.reqparse.parse_args() token = args.get('auth-token') apoderado = Apoderado.objects(id=id).first() administrador = Administrador.load_from_token(token) if apoderado == None and administrador == None: return {'response': 'user_invalid'}, 401 data = request.data.decode() data = json.loads(data) apoderado.nombres = data['nombres'] apoderado.apellido_paterno = data['apellido_paterno'] apoderado.apellido_materno = data['apellido_materno'] apoderado.telefono = data['telefono'] apoderado.email = data['email'] apoderado.rut = data['rut'] direccion = Direccion(calle=data['calle'], numero=data['numero'], comuna=data['comuna'], cas_dep_of=data['cas_dep_of']) apoderado.direccion = direccion #Asignar alumno alumno = Alumno.objects(rut=data['rut_alumno']).first() if alumno == None: return {'Response': 'not_alumno'} else: apoderado.alumno = alumno apoderado.save() return {'Response': 'exito', 'id': str(apoderado.id)}
def post(self): file = request.files["file"] lista = excel_read(file) response = Apoderado.create_from_excel(lista) if (response == "hecho"): return {'Response': response} else: return response
def get(self, id): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 labels = [] data = [] prueba = Prueba.objects(id=id).first() for topico in prueba.topicos: labels.append(topico.nombre) evaluaciones = Evaluacion.objects(prueba=prueba).all() for curso in Curso.objects().all(): if prueba.asignatura in curso.asignaturas: data_curso = [] for topico in prueba.topicos: #DETERMINAR LA CANTIDAD DE PREGUNTAS ASOCIADAS AL TOPICO Y CUALES SON LAS PREGUNTAS cantidad_preguntas_topico = 0 numeros_pregunta_topico = [] for pregunta in prueba.preguntas: if topico == pregunta.topico: cantidad_preguntas_topico += 1 numeros_pregunta_topico.append( pregunta.numero_pregunta) #SACAR EL PROMEDIO DE TODAS LAS EVALUACIONES suma_promedio_topico_evaluacion = 0 cant_promedio_topico_evaluacion = 0 for evaluacion in evaluaciones: #ALUMNO PERTENECE AL CURSO if evaluacion.alumno.curso == curso: cantidad_correcta_evaluacion = 0 for respuesta in evaluacion.respuestas: if respuesta.numero_pregunta in numeros_pregunta_topico: if respuesta.correcta: cantidad_correcta_evaluacion += 1 #SACAR EL PROMEDIO PARA EVALUACION DEL ALUMNO promedio_alumno = int( (cantidad_correcta_evaluacion / cantidad_preguntas_topico) * 100) suma_promedio_topico_evaluacion += promedio_alumno cant_promedio_topico_evaluacion += 1 if cantidad_preguntas_topico > 0 and cant_promedio_topico_evaluacion > 0: data_curso.append( int(suma_promedio_topico_evaluacion / cant_promedio_topico_evaluacion)) else: data_curso.append(0) data.append({"data": data_curso, "label": curso.nombre}) print("labels: ", labels) print("data ", data) return {"labels": labels, "data": data}
def test_get_apoderado(client): apoderado = Apoderado.objects().first() if apoderado == None: assert True else: rv = client.get('/apoderados/' + str(apoderado.id)) if rv._status_code == 200: assert True else: assert False
def get(self): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 return json.loads(Observacion.objects().all().to_json())
def get(self): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) if alumno == None and apoderado == None: return {'response': 'user_invalid'}, 401 if alumno != None: return alumno.to_dict() if apoderado != None: return apoderado.alumno.to_dict()
def post(self): data = request.data.decode() data = json.loads(data) user_mail = data['email'] admin = Administrador.get_by_email_or_username(user_mail) alumno = Alumno.get_by_email_or_username(user_mail) apoderado = Apoderado.get_by_email_or_username(user_mail) profesor = Profesor.get_by_email_or_username(user_mail) result = change_passCodigo(user_mail,admin,alumno,apoderado,profesor) if (result == False): return 'usuario no registrado.', 404 else: return 'correo enviado correctamente a email indicado.', 200
def get(self): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 response = [] for asistencia in Asistencia.objects().all(): response.append(asistencia.to_dict_short()) return response
def delete(self, id_evaluacion): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 evaluacion = Evaluacion.objects(id=id_evaluacion).first() if evaluacion != None: evaluacion.delete() return {'Response': 'borrado'}
def get(self, id_prueba): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 columnDefs = [] columnDefs.append({ 'headerName': 'Nombres', 'field': 'nombres', 'sortable': True }) columnDefs.append({ 'headerName': 'Apellido Paterno', 'field': 'apellido_paterno', 'sortable': True }) columnDefs.append({ 'headerName': 'Apellido Materno', 'field': 'apellido_materno', 'sortable': True }) columnDefs.append({ 'headerName': 'Rut', 'field': 'rut', 'sortable': True }) prueba = Prueba.objects(id=id_prueba).first() for pregunta in prueba.preguntas: if prueba.tipo == "ENSAYO" or prueba.tipo == "TALLER": columnDefs.append({ 'headerName': str(pregunta.numero_pregunta), 'field': str(pregunta.numero_pregunta), 'editable': True, 'width': 40 }) if prueba.tipo == "TAREA": columnDefs.append({ 'headerName': str(pregunta.numero_pregunta), 'field': str(pregunta.numero_pregunta), 'editable': True, 'width': 80, 'cellEditor': 'select', 'cellEditorParams': { 'values': ['correcta', 'incorrecta'] } }) return columnDefs
def get(self, id): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 response = [] for alerta in Alerta.objects().all(): if str(alerta.alumno.curso.id) == str(id): response.append(alerta.to_dict()) return response
def get(self, id, tipo): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 response = [] observaciones = Observacion.objects(alumno=id, tipo=tipo).all() for observacion in observaciones: response.append(observacion.to_dict()) return response
def get(self): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 cursos = [] for curso in Curso.objects().all(): if curso.activo: cursos.append(curso.to_dict()) return cursos
def get(self, id): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 response = [] prueba = Prueba.objects(id=id).first() for evaluacion in Evaluacion.objects(prueba=prueba.id): response.append(evaluacion.to_dict()) return response
def get(self): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 response = [] asignatura = Asignatura.objects(id=profesor.asignatura.id).first() for alerta in Alerta.objects(asignatura=asignatura.id).all(): response.append(alerta.to_dict()) return response
def get(self, id_curso): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 alumnos = [] curso = Curso.objects(id=id_curso).first() for alumno in Alumno.objects(curso=curso.id, activo=True).all(): if alumno.activo: alumnos.append(alumno.to_dict()) return alumnos
def get(self, id): args = self.reqparse.parse_args() token = args.get('auth-token') alumno = Alumno.load_from_token(token) apoderado = Apoderado.load_from_token(token) administrador = Administrador.load_from_token(token) profesor = Profesor.load_from_token(token) if alumno == None and apoderado == None and administrador == None and profesor == None: return {'response': 'user_invalid'}, 401 alumno = Alumno.objects(id=id).first() justificaciones = [] for justificacion in Justificacion.objects(alumno=alumno.id).all(): if justificacion.activo: justificaciones.append(justificacion.to_dict()) return justificaciones
def post(self, id): imagen = Image.open(request.files['imagen'].stream).convert("RGB") imagen.save( os.path.join( current_app.config.get("BASE_PATH") + "uploads/apoderados", str(id) + ".jpg")) imagen.thumbnail((800, 800)) imagen.save( os.path.join( current_app.config.get("BASE_PATH") + "uploads/apoderados", str(id) + '_thumbnail.jpg')) apoderado = Apoderado.objects(id=id).first() apoderado.imagen = id apoderado.save() return {'Response': 'exito', 'id': str(apoderado.id)}