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 = [] for categoria in Categoria.objects().all(): if categoria.activo: cursos = Curso.objects(categoria=categoria.id, institucion=institucion.id).count() cursosCerrados = Curso.objects( activo=False, categoria=categoria.id, institucion=institucion.id).count() categoria = categoria.to_dict() categoria['cursos'] = cursos categoria['cursosCerrados'] = cursosCerrados response.append(categoria) return response
def delete(self, id): 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 seccion = Seccion.objects(id=id).first() posicion = seccion.posicion seccion.activo = False seccion.save() secciones = Seccion.objects(institucion=institucion).all() for sec in secciones: if sec.activo and sec.posicion > posicion: sec.posicion = sec.posicion - 1 sec.save() return {'Response': 'borrado'}
def put(self, id): 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 seccion = Seccion.objects(id=id).first() print(seccion.to_dict()) posicion = seccion.posicion seccion_siguiente = Seccion.objects(institucion=institucion, activo=True, posicion=posicion + 1).first() seccion.posicion = posicion + 1 seccion_siguiente.posicion = posicion seccion.save() seccion_siguiente.save() return {'Response': 'exito'}
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 secciones = [] cant_secciones = Seccion.objects(institucion=institucion.id, activo=True).count() posicion = 1 for pos in range(0, cant_secciones): seccion = Seccion.objects(institucion=institucion.id, posicion=pos + 1, activo=True).first() if seccion != None and seccion.activo: secciones.append(seccion.to_dict()) return secciones
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) posicion = Seccion.objects(institucion=institucion.id, activo=True).count() + 1 seccion = Seccion() seccion.institucion = institucion.id seccion.titulo = data['titulo'] seccion.data = data['data'] seccion.tipo = data['tipo'] seccion.posicion = posicion seccion.save() return {'Response': 'exito', 'id': str(seccion.id)}
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) asignatura = Asignatura() asignatura.nombre = data['nombre'] asignatura.institucion = institucion asignatura.save() return {'Response': 'exito'}
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 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 = [] asignaturas = Asignatura.objects(institucion=institucion).all() for asignatura in asignaturas: if asignatura.activo: cursos_lista = [] cursos = Curso.objects(asignatura=asignatura.id, clon_padre=None).all() for curso in cursos: cursos_lista.append({'nombre': curso.nombre}) response.append({ 'id': str(asignatura.id), 'nombre': asignatura.nombre, 'cursos': cursos_lista }) return response
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) 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.nombre_usuario = data['nombre_usuario'] profesor.encrypt_password(data['nombre_usuario']) profesor.institucion = institucion.id profesor.save() return {'Response': 'exito', 'id': str(profesor.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 profesores = [] for profesor in Profesor.objects(institucion=institucion.id, activo=True).all(): profesores.append(profesor.to_dict()) return profesores
def put(self): #Cargar datos dinamicos data = request.data.decode() data = json.loads(data) idCurso = data['id'] data = data['data'] cursoBase = CursoBase.objects(id=data['curso_base']).first() asignatura = Asignatura.objects(id=data['asignatura']).first() institucion = Institucion.objects(id=data['institucion']).first() profesor = Profesor.objects(id=data['profesor']).first() alumnos = Alumno.objects(id=data['alumnos']).first() pregunta = Pregunta() curso = Curso.objects(id=idCurso).first() curso.nombre = data['nombre'] curso.fecha_creacion = '10/06/2012' curso.preguntas = [pregunta] curso.asignatura = asignatura.id curso.institucion = institucion.id curso.profesor = profesor.id curso.alumnos = [alumnos.id] curso.activo = True curso.version = data['version'] curso.curso_base = cursoBase.id curso.save() return {'test': 'test'}
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 recurso in Curso.objects(institucion=institucion.id, activo=True, publicado=True).all(): labels.append(recurso.nombre) aprobacion = 0 for evaluacion in Evaluacion.objects(curso=recurso.id).all(): aprobacion = aprobacion + evaluacion.acierto if Evaluacion.objects(curso=recurso.id).count() != 0: aprobacion = int(aprobacion / Evaluacion.objects(curso=recurso.id).count()) data.append(aprobacion) return { "data": [{ "data": data, "label": "Aprobación" }], "labels": labels }
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 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_institucion): institucion = Institucion.objects(id = id_institucion).first() alumnos = [] for alumno in Alumno.objects(institucion = id_institucion).all(): alumnos.append(alumno.to_dict()) return alumnos
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_get_institucion_imagen_default(client): institucion = Institucion.objects().first() if institucion == None: assert False rv = client.get('/institucion/imagen/default/'+str(institucion.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 asignarPosicion(self, id): institucion = Institucion.objects(id=id).first() posicion = 0 for seccion in Seccion.objects(institucion=institucion.id).all(): if seccion.activo: if posicion < seccion.posicion: posicion = seccion.posicion self.posicion = posicion + 1 return True
def post(self, id_colegio): data = request.data.decode() data = json.loads(data) asignatura = Asignatura() asignatura.nombre = data['nombre'] institucion = Institucion.objects(id=id_colegio).first() asignatura.institucion = institucion.id asignatura.save() return {'Response': 'exito'}
def get(self,identificador): institucion = Institucion.objects(identificador=identificador).first() if institucion == None: return {'Response': 'fracaso'} else: return { 'Response': 'exito', 'institucion': institucion.to_dict() }
def test_get_categorias(client): institucion = Institucion.objects().first() if institucion == None: assert False rv = client.get('/categorias') if rv._status_code == 200: return True return True #Quitar cuando se solucione el problema 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 test_get_categorias(client): institucion = Institucion.objects().first() if institucion == None: assert True else: rv = client.get('/categorias/' + str(institucion.id)) if rv._status_code == 200: assert True else: assert False
def test_get_institucion_imagen(client): institucion = Institucion.objects().first() if institucion == None: assert True else: rv = client.get('/institucion/imagen/' + str(institucion.id)) if rv._status_code == 200: assert True else: assert False
def get(self, id_profesor,id_institucion): institucion = Institucion.objects(id=id_institucion).first() profesor = Profesor.objects(id=id_profesor).first() response = [] for curso in Curso.objects(activo=False, institucion=institucion.id,profesor=profesor.id).all(): categoria = Categoria.objects(id=curso.categoria.id).first() curso = curso.to_dict() curso['categoria'] = categoria.to_dict() response.append(curso) return response
def test_post_asignaturas(client): institucion = Institucion.objects().first() if institucion == None: assert False data = {'nombre': 'nombre', 'institucion': str(institucion.id)} data = json.dumps(data) data = data.encode() rv = client.post('/asignaturas', data=data) if rv._status_code == 200: return True assert False
def test_get_institucion_identificador(client): institucion = Institucion.objects().first() if institucion == None: assert True else: rv = client.get('/institucion/identificador/' + institucion.identificador) if rv._status_code == 200: assert True else: assert False
def post(self, id): data = request.data.decode() data = json.loads(data) institucion = Institucion.objects(id=id).first() administrador = Administrador.objects( email=data['email'], institucion=institucion.id).first() profesor = Profesor.objects(email=data['email'], institucion=institucion.id).first() alumno = Alumno.objects(email=data['email'], institucion=institucion.id).first() if administrador != None: if (administrador.check_password(data['password']) or administrador.activo == False): token = administrador.get_token() return { 'respuesta': { 'id': str(administrador.id) }, 'tipo': 'ADMINISTRADOR', 'token': str(token) } else: return {'respuesta': 'no_existe'}, 401 if profesor != None: if (profesor.check_password(data['password']) or administrador.activo == False): token = profesor.get_token() return { 'respuesta': { 'id': str(profesor.id) }, 'tipo': 'PROFESOR', 'token': str(token) } else: return {'respuesta': 'no_existe'}, 401 if alumno != None: if (alumno.check_password(data['password']) or administrador.activo == False): token = alumno.get_token() return { 'respuesta': { 'id': str(alumno.id) }, 'tipo': 'ALUMNO', 'token': str(token) } else: return {'respuesta': 'no_existe'}, 401 else: return {'respuesta': 'no_existe'}, 404
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