Beispiel #1
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'}
Beispiel #2
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)}
Beispiel #3
0
    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
Beispiel #4
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
Beispiel #5
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
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
Beispiel #7
0
 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
Beispiel #8
0
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
Beispiel #9
0
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
Beispiel #10
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
Beispiel #11
0
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
Beispiel #12
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'}
Beispiel #13
0
 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'}
Beispiel #14
0
def newGrado():
    profesor = newProfesor()
    grado = Grado()
    grado.nivel = 1
    grado.profesor = profesor.id
    grado.save()
    return grado
Beispiel #15
0
 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
Beispiel #16
0
 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'}
Beispiel #17
0
 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)}
Beispiel #18
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
Beispiel #19
0
 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
Beispiel #20
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 = []
     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
Beispiel #21
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 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
        }
Beispiel #22
0
    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
Beispiel #23
0
 def delete(self, id):
     grado = Grado.objects(id=id).first()
     grado.activo = False
     grado.save()
     return {'Response': 'borrado'}
Beispiel #24
0
 def get(self, id):
     response = []
     grado = Grado.objects(id=id).first()
     if grado != None:
         response = grado.to_dict()
     return response
Beispiel #25
0
 def get(self):
     response = []
     for grado in Grado.objects().all():
         if grado.activo:
             response.append(grado.to_dict())
     return response