コード例 #1
0
 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
コード例 #2
0
 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'}
コード例 #3
0
 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'}
コード例 #4
0
 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
コード例 #5
0
 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)}
コード例 #6
0
 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'}
コード例 #7
0
 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'}
コード例 #8
0
 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
コード例 #9
0
 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)}
コード例 #10
0
 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
コード例 #11
0
    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'}
コード例 #12
0
    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
        }
コード例 #13
0
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
コード例 #14
0
 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)}
コード例 #15
0
    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
コード例 #16
0
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
コード例 #17
0
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
コード例 #18
0
 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
コード例 #19
0
 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
コード例 #20
0
 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'}
コード例 #21
0
 def get(self,identificador):
     institucion = Institucion.objects(identificador=identificador).first()
     if institucion == None:
         return {'Response': 'fracaso'}
     else:
         return {
             'Response': 'exito',
             'institucion': institucion.to_dict()
         }
コード例 #22
0
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
コード例 #23
0
 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'}
コード例 #24
0
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
コード例 #25
0
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
コード例 #26
0
 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
コード例 #27
0
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
コード例 #28
0
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
コード例 #29
0
    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
コード例 #30
0
 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