def post(self): args = self.reqparse.parse_args() token = args.get('auth-token') userAdmin = Administrador.load_from_token(token) userAlum = Alumno.load_from_token(token) userProf = Profesor.load_from_token(token) if userAdmin == None and userAlum == None and userProf == None: return {'response': 'user_invalid'}, 401 institucion = None if userAdmin != None: institucion = Institucion.objects( id=userAdmin.institucion.id).first() if userAlum != None: institucion = Institucion.objects( id=userAlum.institucion.id).first() if userProf != None: institucion = Institucion.objects( id=userProf.institucion.id).first() if institucion == None: return {'response': 'colegio_invalid'}, 404 data = request.data.decode() data = json.loads(data) grado = Grado() grado.nivel = data['nivel'] grado.identificador = data['identificador'] grado.institucion = institucion.id profesor = Profesor.objects(id=data['profesor']).first() grado.profesor = profesor.id grado.save() return {'Response': 'exito'}
def post(self): data = request.data.decode() data = json.loads(data) args = self.reqparse.parse_args() token = args.get('auth-token') user = Administrador.load_from_token(token) if user == None: return {'response': 'user_invalid'}, 401 institucion = Institucion.objects(id=user.institucion.id).first() if institucion == None: return {'response': 'colegio_invalid'}, 404 alumno = Alumno() alumno.nombres = data['nombres'] alumno.apellido_paterno = data['apellido_paterno'] alumno.apellido_materno = data['apellido_materno'] alumno.telefono = data['telefono'] alumno.email = data['email'] alumno.nombre_usuario = data['nombre_usuario'] alumno.encrypt_password(data['nombre_usuario']) alumno.matricula = data['matricula'] alumno.institucion = institucion.id grado = Grado.objects(id=data['grado']).first() alumno.grado = grado alumno.save() return {'Response': 'exito', 'id': str(alumno.id)}
def get(self, id): response = [] grados = Grado.objects(institucion=id).all() for grado in grados: if grado.activo: cursosGrado = Curso.objects(grado=grado.id).count() alumnosGrados = 0 for alumno in Alumno.objects(grado=grado.id).all(): if alumno.activo: alumnosGrados = alumnosGrados + 1 cursos = Curso.objects(grado=grado.id).all() aprobacion = 0 for curso in cursos: aprobacion = aprobacion + curso.aprobacion if cursosGrado > 0: aporbacion = aprobacion / cursosGrado response.append({ 'id': str(grado.id), 'nivel': grado.nivel, 'identificador': grado.identificador, 'cant_cursos': cursosGrado, 'cant_alumnos': alumnosGrados, 'aprobacion': aprobacion }) return response
def test_put_recursos(client): curso = Curso.objects().first() institucion = Institucion.objects().first() asignatura = Asignatura.objects().first() profesor = Profesor.objects().first() alumno = Alumno.objects().first() grado = Grado.objects().first() curso_base = CursoBase.objects().first() if((institucion == None) or (asignatura == None) or \ (profesor == None) or (alumno == None) or \ (grado == None) or (curso_base == None) or (curso == None)): assert False data = { 'nombre': 'nombre', 'fecha_creacion': '01/01/2000', 'preguntas': [], 'asignatura': str(asignatura.id), 'institucion': str(institucion.id), 'profesor': str(profesor.id), 'alumnos': str(alumno.id), 'grado': str(grado.id), 'activo': True, 'version': 1, 'curso_base': str(curso_base.id), 'descripcion': 'descripcion del curso' } data_put = {'id': str(curso.id), 'data': data} data_put = json.dumps(data_put) data_put = data_put.encode() rv = client.put('/recursos', data=data_put) if rv._status_code == 200: return True assert False
def test_post_cursos(client): institucion = Institucion.objects().first() asignatura = Asignatura.objects().first() profesor = Profesor.objects().first() alumnos = Alumno.objects().all() grado = Grado.objects().first() curso_base = CursoBase.objects().first() if ((institucion == None) or (asignatura == None) or (profesor == None) or (alumnos == None) or (grado == None) or (curso_base == None)): assert True else: alumnos_array = [] for alumno in alumnos: alumnos_array.append(alumno.id) data = { 'nombre': 'nombre', 'fecha_creacion': '01/01/2000', 'preguntas': [], 'asignatura': str(asignatura.id), 'institucion': str(institucion.id), 'profesor': str(profesor.id), 'alumnos': alumnos_array, 'grado': str(grado.id), 'activo': True, 'version': '1.0', 'curso_base': str(curso_base.id), 'descripcion': 'descripcion del curso' } token = profesor.get_token() rv = client.post('/recursos', data=data, headers={'auth-token': token}) if rv._status_code == 200: assert True else: assert False
def test_post_alumno(client): grado = Grado.objects().first() if grado == None: grado = 'None' else: grado = str(grado.id) data_personal = { 'nombres': 'nombre prueba', 'apellido_paterno': 'paterno', 'apellido_materno': 'materno', 'email': '*****@*****.**', 'telefono': '+569', 'imagen': 'path/to/img', 'grado': grado } data_academico = { 'nombre_usuario': 'usuario_prueba', 'password': '******', 'matricula': 'matricula' } data = {'data_personal': data_personal, 'data_academico': data_academico} data = json.dumps(data) data = data.encode() rv = client.post('/alumnos', data=data) if rv._status_code == 200: assert True else: assert False
def get(self, id): alumnos = [] grado = Grado.objects(id=id).first() for alumno in Alumno.objects().all(): if alumno.grado == grado: if alumno.activo: alumnos.append(alumno.to_dict()) return alumnos
def test_get_alumnos_curso(client): curso = Grado.objects().first() if curso == None: assert False rv = client.get('/alumnos/curso/'+str(curso.id)) if rv._status_code == 200: return True assert False
def test_delete_curso_item(client): curso = Grado.objects().first() if curso == None: assert False rv = client.delete('/cursos/' + str(curso.id)) if rv._status_code == 200: return True assert False
def get(self, id): response = [] institucion = Institucion.objects(id=id).first() grados = Grado.objects(institucion=institucion.id).all() for grado in grados: if grado.activo: response.append(grado.to_dict()) return response
def test_get_curso_item(client): curso = Grado.objects().first() if curso == None: assert True else: rv = client.get('/cursos/'+str(curso.id)) if rv._status_code == 200: assert True else: assert False
def post(self, id): data = request.data.decode() data = json.loads(data) grado = Grado() grado.nivel = data['nivel'] grado.identificador = data['identificador'] institucion = Institucion.objects(id=id).first() grado.institucion = institucion.id grado.save() return {'Response': 'exito'}
def post(self): data = request.data.decode() data = json.loads(data) grado = Grado() profesor = Profesor.objects(id=data['profesor']).first() grado.profesor = profesor.id grado.nivel = data['nivel'] grado.identificador = data['identificador'] grado.save() return {'Response': 'exito'}
def newGrado(): profesor = newProfesor() grado = Grado() grado.nivel = 1 grado.profesor = profesor.id grado.save() return grado
def get(self): args = self.reqparse.parse_args() token = args.get('auth-token') user = Administrador.load_from_token(token) if user == None: return {'response': 'user_invalid'}, 401 institucion = Institucion.objects(id=user.institucion.id).first() if institucion == None: return {'response': 'colegio_invalid'}, 404 response = [] grados = Grado.objects(institucion=institucion.id).all() for grado in grados: if grado.activo: response.append(grado.to_dict()) return response
def put(self, id): data = request.data.decode() data = json.loads(data) alumno = Alumno.objects(id=id).first() alumno.nombres = data['nombres'] alumno.apellido_paterno = data['apellido_paterno'] alumno.apellido_materno = data['apellido_materno'] alumno.telefono = data['telefono'] alumno.email = data['email'] alumno.nombre_usuario = data['nombre_usuario'] alumno.matricula = data['matricula'] grado = Grado.objects(id=data['grado']).first() alumno.grado = grado.id alumno.save() return {'Response': 'exito'}
def post(self): data = request.data.decode() data = json.loads(data) alumno = Alumno() alumno.nombres = data['data_personal']['nombres'] alumno.apellido_paterno = data['data_personal']['apellido_paterno'] alumno.apellido_materno = data['data_personal']['apellido_materno'] alumno.telefono = data['data_personal']['telefono'] alumno.email = data['data_personal']['email'] alumno.nombre_usuario = data['data_academico']['nombre_usuario'] alumno.encrypt_password(data['data_academico']['nombre_usuario']) alumno.matricula = data['data_academico']['matricula'] alumno.institucion = None alumno.grado = Grado.objects(id=data['data_personal']['grado']).first() alumno.save() return {'Response': 'exito', 'id': str(alumno.id)}
def get(self): args = self.reqparse.parse_args() token = args.get('auth-token') userAdmin = Administrador.load_from_token(token) userAlum = Alumno.load_from_token(token) userProf = Profesor.load_from_token(token) if userAdmin == None and userAlum == None and userProf == None: return {'response': 'user_invalid'}, 401 institucion = None if userAdmin != None: institucion = Institucion.objects( id=userAdmin.institucion.id).first() if userAlum != None: institucion = Institucion.objects( id=userAlum.institucion.id).first() if userProf != None: institucion = Institucion.objects( id=userProf.institucion.id).first() if institucion == None: return {'response': 'colegio_invalid'}, 404 response = [] profesor = userProf grados = Grado.objects(profesor=profesor.id).all() for grado in grados: if grado.activo: alumnos = [] cantidad_alumnos = Alumno.objects(grado=grado.id).count() suma_evaluaciones = 0 for alumno in Alumno.objects(grado=grado.id).all(): alumnos.append(alumno.to_dict(full=False)) for evaluacion in Evaluacion.objects(alumno=alumno.id): suma_evaluaciones = suma_evaluaciones + evaluacion.acierto grado = grado.to_dict() grado['alumnos'] = alumnos if cantidad_alumnos == 0: grado['progreso'] = 0 else: grado['progreso'] = int(suma_evaluaciones / cantidad_alumnos) response.append(grado) return response
def get(self, id): response = [] profesor = Profesor.objects(id=id).first() grados = Grado.objects(profesor=profesor.id).all() for grado in grados: if grado.activo: alumnos = [] cantidad_alumnos = Alumno.objects(grado=grado.id).count() suma_evaluaciones = 0 for alumno in Alumno.objects(grado=grado.id).all(): alumnos.append(alumno.to_dict()) for evaluacion in Evaluacion.objects(alumno=alumno.id): suma_evaluaciones = suma_evaluaciones + evaluacion.acierto grado = grado.to_dict() grado['alumnos'] = alumnos if cantidad_alumnos == 0: grado['progreso'] = 0 else: grado['progreso'] = int(suma_evaluaciones / cantidad_alumnos) response.append(grado) return response
def get(self): args = self.reqparse.parse_args() token = args.get('auth-token') userAdmin = Administrador.load_from_token(token) userAlum = Alumno.load_from_token(token) userProf = Profesor.load_from_token(token) if userAdmin == None and userAlum == None and userProf == None: return {'response': 'user_invalid'}, 401 institucion = None if userAdmin != None: institucion = Institucion.objects( id=userAdmin.institucion.id).first() if userAlum != None: institucion = Institucion.objects( id=userAlum.institucion.id).first() if userProf != None: institucion = Institucion.objects( id=userProf.institucion.id).first() if institucion == None: return {'response': 'colegio_invalid'}, 404 response = [] grados = Grado.objects(institucion=institucion.id).all() for grado in grados: if grado.activo: alumnosGrados = Alumno.objects(grado=grado.id, activo=True).count() alumnos = [] for alumno in Alumno.objects(grado=grado.id, activo=True).all(): alumnos.append(alumno.to_dict()) response.append({ 'id': str(grado.id), 'nivel': grado.nivel, 'identificador': grado.identificador, 'cant_alumnos': alumnosGrados, 'profesor': grado.profesor.to_dict(), 'alumnos': alumnos }) return response
def get(self): args = self.reqparse.parse_args() token = args.get('auth-token') userAdmin = Administrador.load_from_token(token) if userAdmin == None: return {'response': 'user_invalid'}, 401 institucion = None if userAdmin != None: institucion = Institucion.objects( id=userAdmin.institucion.id).first() if institucion == None: return {'response': 'colegio_invalid'}, 404 data = [] labels = [] for curso in Grado.objects(institucion=institucion.id, activo=True).all(): labels.append(str(curso.nivel) + "º" + curso.identificador) aprobacion = 0 contador = 0 for evaluacion in Evaluacion.objects().all(): if evaluacion.alumno.grado.id == curso.id: contador = contador + 1 aprobacion = aprobacion + evaluacion.acierto if contador != 0: aprobacion = int(aprobacion / contador) data.append(aprobacion) aprobacion = 0 return { "data": [{ "data": data, "label": "Aprobación" }], "labels": labels }
def get(self): response = [] grados = Grado.objects().all() for grado in grados: if grado.activo: alumnosGrados = 0 alumnos = [] for alumno in Alumno.objects(grado=grado.id).all(): if alumno.activo: alumnos.append(alumno.to_dict()) alumnosGrados = alumnosGrados + 1 profesor = "" if grado.profesor != None: profesor = grado.profesor.to_dict() response.append({ 'id': str(grado.id), 'nivel': grado.nivel, 'identificador': grado.identificador, 'cant_alumnos': alumnosGrados, 'alumnos': alumnos, 'profesor': profesor }) return response
def delete(self, id): grado = Grado.objects(id=id).first() grado.activo = False grado.save() return {'Response': 'borrado'}
def get(self, id): response = [] grado = Grado.objects(id=id).first() if grado != None: response = grado.to_dict() return response
def get(self): response = [] for grado in Grado.objects().all(): if grado.activo: response.append(grado.to_dict()) return response