Esempio n. 1
0
 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()
Esempio n. 2
0
 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'}
Esempio n. 3
0
 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
Esempio n. 4
0
    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'}
Esempio n. 5
0
 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
Esempio n. 6
0
    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"}
Esempio n. 7
0
    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}
Esempio n. 8
0
 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
Esempio n. 9
0
 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}
Esempio n. 10
0
 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]}
Esempio n. 11
0
 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)}
Esempio n. 12
0
 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
Esempio n. 13
0
    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)}
Esempio n. 14
0
 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
Esempio n. 15
0
    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}
Esempio n. 16
0
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
Esempio n. 17
0
 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())
Esempio n. 18
0
 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()
Esempio n. 19
0
 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
Esempio n. 20
0
 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
Esempio n. 21
0
 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'}
Esempio n. 22
0
 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
Esempio n. 23
0
 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
Esempio n. 24
0
 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
Esempio n. 25
0
 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
Esempio n. 26
0
 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
Esempio n. 27
0
 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
Esempio n. 28
0
 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
Esempio n. 29
0
 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
Esempio n. 30
0
 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)}