Beispiel #1
0
 def put(self, id):
     args = self.reqparse.parse_args()
     token = args.get('auth-token')
     alumno = Alumno.objects(id=id).first()
     administrador = Administrador.load_from_token(token)
     if alumno == None and administrador == None:
         return {'response': 'user_invalid'}, 401
     data = request.data.decode()
     data = json.loads(data)
     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.sexo = data['sexo']
     alumno.rut = data['rut']
     alumno.puntaje_ingreso = data['puntaje_ingreso']
     direccion = Direccion(calle=data['calle'],
                           numero=data['numero'],
                           comuna=data['comuna'],
                           cas_dep_of=data['cas_dep_of'])
     alumno.direccion = direccion
     colegio = Colegio.objects(id=data['colegio']).first()
     curso = Curso.objects(id=data['curso']).first()
     alumno.colegio = colegio
     alumno.curso = curso
     alumno.save()
     colegio.updateCantEstudiantes()
     curso.updateCantEstudiantes()
     colegio.save()
     curso.save()
     return {'Response': 'exito', 'id': str(alumno.id)}
Beispiel #2
0
 def create_layout_excel(cls):
     headers = [
         "RUN", "Nombres", "Apellido Paterno", "Apellido Materno",
         "Puntaje Ingreso", "Sexo (MASCULINO/FEMENINO/NO DEFINIDO)",
         "Email", "Telefono", "Calle", "Numero", "Comuna", "Villa/Depto",
         "Id. Curso", "Id. Colegio"
     ]
     result_list = [Colegio.export_to_excel(), Curso.export_to_excel()]
     return create_excel(result_list, headers, "Formato_alumnos")
Beispiel #3
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 Colegio.objects(id=id).first().to_dict()
Beispiel #4
0
def test_get_colegio(client):
    colegio = Colegio.objects().first()
    if colegio == None:
        assert True
    else:
        rv = client.get('/colegios/' + str(colegio.id))
        if rv._status_code == 200:
            assert True
        else:
            assert False
Beispiel #5
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
     colegio = Colegio.objects(id=id).first()
     colegio.activo = False
     colegio.save()
     return {'Response':'exito'}
Beispiel #6
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 = []
     colegios = Colegio.objects().all()
     for colegio in colegios:
         if colegio.activo:
             response.append(colegio.to_dict())
     return response
Beispiel #7
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)
     colegio = Colegio()
     colegio.nombre = data['nombre']
     direccion = Direccion()
     direccion.calle = data['calle']
     direccion.numero = data['numero']
     direccion.comuna = data['comuna']
     colegio.direccion = direccion
     colegio.save()
     return {'Response':'exito'}
Beispiel #8
0
 def get(self):
     return Colegio.create_layout_excel()
Beispiel #9
0
 def post(self):
     file = request.files["file"]
     lista = excel_read(file)
     return {'Response': Colegio.create_from_excel(lista)}
Beispiel #10
0
 def process_file(self, filename):
     from xlrd import open_workbook, xldate_as_tuple
     filas = 0
     filepath = os.path.join('/tmp', filename)
     wb = open_workbook(filepath)
     sheet = wb.sheets()[0]
     filas_importadas = 0
     for row in range(1, sheet.nrows):
         rut = str(sheet.cell(row, 0).value)
         if Alumno.objects(rut=rut).first() == None:
             nombres = str(sheet.cell(row, 1).value)
             apel_pa = str(sheet.cell(row, 2).value)
             apel_ma = str(sheet.cell(row, 3).value)
             sexo = str(sheet.cell(row, 4).value)
             email = str(sheet.cell(row, 5).value)
             telefono = str(sheet.cell(row, 6).value)
             calle = str(sheet.cell(row, 7).value)
             numero = str(sheet.cell(row, 8).value)
             comuna = str(sheet.cell(row, 9).value)
             curso = str(sheet.cell(row, 10).value)
             colegio = str(sheet.cell(row, 11).value)
             colegio_calle = str(sheet.cell(row, 12).value)
             colegio_numero = str(sheet.cell(row, 13).value)
             colegio_comuna = str(sheet.cell(row, 14).value)
             alumno = Alumno()
             alumno.rut = rut
             alumno.encrypt_password(rut)
             alumno.nombres = nombres
             alumno.apellido_paterno = apel_pa
             alumno.apellido_materno = apel_ma
             if sexo == 'M':
                 alumno.sexo = 'MASCULINO'
             if sexo == 'F':
                 alumno.sexo = 'FEMENINO'
             if curso == 'C':
                 ciencias = Curso.objects(nombre="Ciencias 2019").first()
                 if ciencias != None:
                     alumno.curso = ciencias.id
             if curso == 'H':
                 historia = Curso.objects(nombre="Historia 2019").first()
                 if historia != None:
                     alumno.curso = historia.id
             alumno.email = email
             alumno.telefono = telefono
             direccion = Direccion()
             direccion.calle = calle
             direccion.numero = numero
             direccion.comuna = comuna
             alumno.direccion = direccion
             colegio_alumno = Colegio.objects(nombre=colegio).first()
             if colegio_alumno != None:
                 alumno.colegio = colegio_alumno.id
             else:
                 colegio_alumno = Colegio()
                 colegio_alumno.nombre = colegio
                 direccion = Direccion()
                 direccion.calle = colegio_calle
                 direccion.numero = colegio_numero
                 direccion.comuna = colegio_comuna
                 colegio_alumno.direccion = direccion
                 colegio_alumno.save()
                 alumno.colegio = colegio_alumno.id
             alumno.imagen = "default"
             alumno.puntaje_ingreso = 500
             alumno.save()
             filas_importadas += 1
     for colegio in Colegio.objects().all():
         colegio.updateCantEstudiantes()
     for curso in Curso.objects().all():
         curso.updateCantEstudiantes()
     return "%d Fila importadas" % filas_importadas
Beispiel #11
0
    def create_from_excel(cls, list_rows):
        error_list = [[
            "RUN", "Nombres", "Apellido Paterno", "Apellido Materno",
            "Puntaje Ingreso", "Sexo", "Email", "Telefono", "Calle", "Numero",
            "Comuna", "Villa/Depto", "Id. Curso", "Id. Colegio", "Error"
        ]]
        for alumno in list_rows:
            alumno = list(alumno)
            rut = str(alumno[0])
            if (rut != "None" and validar_rut(rut)):
                try:
                    curso = Curso.objects(id=alumno[12]).first()
                    if (curso == None):
                        alumno.append("Curso no existe")
                        error_list.append(alumno)
                        continue
                except:
                    alumno.append("Id de curso no es valido")
                    error_list.append(alumno)
                    continue

                try:
                    colegio = Colegio.objects(id=alumno[13]).first()
                    if (colegio == None):
                        alumno.append("Colegio no existe")
                        error_list.append(alumno)
                        continue
                except:
                    alumno.append("Id de colegio no es valido")
                    error_list.append(alumno)
                    continue

                if (alumno[5] == "None"
                        or not (alumno[5] in TIPOS_SEXOS_ARRAY)):
                    alumno.append("Sexo ingresado no es valido")
                    error_list.append(alumno)
                    continue
                if (alumno[6] == "None" or not (es_correo_valido(alumno[6]))):
                    alumno.append("Correo ingresado no es valido")
                    error_list.append(alumno)
                    continue

                direccion = Direccion(calle=alumno[8],
                                      numero=str(alumno[9]),
                                      comuna=alumno[10],
                                      cas_dep_of=alumno[11])
                alumnoNuevo = Alumno(rut=str(alumno[0]),
                                     nombres=alumno[1],
                                     apellido_paterno=alumno[2],
                                     apellido_materno=alumno[3],
                                     sexo=alumno[5],
                                     email=alumno[6],
                                     telefono=str(alumno[7]),
                                     direccion=direccion,
                                     colegio=colegio,
                                     curso=curso,
                                     imagen="default")
                alumnoNuevo.encrypt_password(str(alumno[0]))
                if (alumno[4] != None and alumno[4] != ""):
                    alumnoNuevo.puntaje_ingreso = alumno[4]
                else:
                    alumnoNuevo.puntaje_ingreso = 0
                alumnoNuevo.save()
            else:
                alumno.append("RUT invalido")
                error_list.append(alumno)
        if (len(error_list) > 1):
            return write_error(error_list, "errores")
        return "hecho"