Я пытаюсь снизить сложность своего кода и использую Scrutinizer для измерения этих значений. В моем коде большая часть сложности связана с проверками, так как я могу их улучшить?
class gestionRegister:
#VALIDA LA 1 SECCION DEL FORMULARIO EN EL QUE PIDE LOS DATOS PERSONALES
def formulario1(page, nombre, apellido, cedula, numTelefono, correo, ubicacion, nivelUser, tipoCorreo, codigoTelefono, tipoCedula, formulario, contenedor1, contenedor2):
#ARREGLOS
arregloCedula = f"{tipoCedula.value}-{cedula.value}"
arregloCorreo = f"{correo.value}{tipoCorreo.value}"
arregloTelefono = f"{codigoTelefono.value}-{numTelefono.value}"
global nuevoLider
if (nombre.value == "") or (apellido.value == "") or (cedula.value == "") or (numTelefono.value == "") or (correo.value == "") or (ubicacion.value == "") or (nivelUser.value == None) or (tipoCorreo.value == None) or (codigoTelefono.value == None) or (len(nombre.value) in range(1, 3)) or (len(apellido.value) in range(1, 4)) or (len(cedula.value) in range(1, 7)) or (len(numTelefono.value) in range(1, 7)) or (len(ubicacion.value) in range(1, 3)):
if nombre.value == "":
nombre.error_text = mensaje.campoFaltante
page.update()
if apellido.value == "":
apellido.error_text = mensaje.campoFaltante
page.update()
if cedula.value == "":
cedula.error_text = mensaje.campoFaltante
page.update()
if numTelefono.value == "":
numTelefono.error_text = mensaje.campoFaltante
page.update()
if correo.value == "":
correo.error_text = mensaje.campoFaltante
page.update()
if ubicacion.value == "":
ubicacion.error_text = mensaje.campoFaltante
page.update()
if nivelUser.value == None:
nivelUser.error_text = mensaje.campoFaltante
page.update()
if tipoCorreo.value == None:
tipoCorreo.error_text = mensaje.campoFaltante
page.update()
if codigoTelefono.value == None:
codigoTelefono.error_text = mensaje.campoFaltante
page.update()
if len(nombre.value) in range(1, 3):
nombre.error_text = "Minimo de caracteres 3"
page.update()
if len(apellido.value) in range(1, 4):
apellido.error_text = "Minimo de caracteres 4"
page.update()
if len(cedula.value) in range(1, 7):
cedula.error_text = "Minimo de caracteres 7"
page.update()
if len(numTelefono.value) in range(1, 7):
numTelefono.error_text = "Numero de telefono no valido"
page.update()
if len(ubicacion.value) in range(1, 3):
ubicacion.error_text = "Minimo de caracteres 3"
page.update()
elif db.verificarUbicacion(ubicacion.value):
page.snack_bar = SnackBar(content=Text("Esta ubicacion ya esta en uso"))
page.snack_bar.open = True
page.update()
elif db.verificarCedula(arregloCedula):
page.snack_bar = SnackBar(content=Text("Esta cedula ya esta ligada a un usuario"))
page.snack_bar.open = True
page.update()
elif db.verificarTelefono(arregloTelefono):
page.snack_bar = SnackBar(content=Text("Este numero de telefono ya esta asignado a un usuario"))
page.snack_bar.open = True
page.update()
elif db.verificarCorreo(arregloCorreo):
page.snack_bar = SnackBar(content=Text("Este correo ya esta en uso"))
page.snack_bar.open = True
page.update()
else:
nuevoLider = Lideres(nombre.value, apellido.value, arregloCedula, arregloTelefono, arregloCorreo, ubicacion.value, nivelUser.value)
rutas.animar(formulario, contenedor1, contenedor2, page)
Вот как я структурировал другие проверки, и какой способ будет наиболее оптимальным?
Было бы очень полезно, если бы вы дали мне пример, чтобы я мог ориентироваться и иметь возможность изменить все проверки
Я пытаюсь снизить сложность своего кода и использую Scrutinizer для измерения этих значений. В моем коде большая часть сложности связана с проверками, так как я могу их улучшить? [code]class gestionRegister: #VALIDA LA 1 SECCION DEL FORMULARIO EN EL QUE PIDE LOS DATOS PERSONALES def formulario1(page, nombre, apellido, cedula, numTelefono, correo, ubicacion, nivelUser, tipoCorreo, codigoTelefono, tipoCedula, formulario, contenedor1, contenedor2): #ARREGLOS arregloCedula = f"{tipoCedula.value}-{cedula.value}" arregloCorreo = f"{correo.value}{tipoCorreo.value}" arregloTelefono = f"{codigoTelefono.value}-{numTelefono.value}" global nuevoLider if (nombre.value == "") or (apellido.value == "") or (cedula.value == "") or (numTelefono.value == "") or (correo.value == "") or (ubicacion.value == "") or (nivelUser.value == None) or (tipoCorreo.value == None) or (codigoTelefono.value == None) or (len(nombre.value) in range(1, 3)) or (len(apellido.value) in range(1, 4)) or (len(cedula.value) in range(1, 7)) or (len(numTelefono.value) in range(1, 7)) or (len(ubicacion.value) in range(1, 3)): if nombre.value == "": nombre.error_text = mensaje.campoFaltante page.update()
if apellido.value == "": apellido.error_text = mensaje.campoFaltante page.update() if cedula.value == "": cedula.error_text = mensaje.campoFaltante page.update() if numTelefono.value == "": numTelefono.error_text = mensaje.campoFaltante page.update() if correo.value == "": correo.error_text = mensaje.campoFaltante page.update() if ubicacion.value == "": ubicacion.error_text = mensaje.campoFaltante page.update() if nivelUser.value == None: nivelUser.error_text = mensaje.campoFaltante page.update() if tipoCorreo.value == None: tipoCorreo.error_text = mensaje.campoFaltante page.update() if codigoTelefono.value == None: codigoTelefono.error_text = mensaje.campoFaltante page.update() if len(nombre.value) in range(1, 3): nombre.error_text = "Minimo de caracteres 3" page.update() if len(apellido.value) in range(1, 4): apellido.error_text = "Minimo de caracteres 4" page.update()
if len(cedula.value) in range(1, 7): cedula.error_text = "Minimo de caracteres 7" page.update()
if len(numTelefono.value) in range(1, 7): numTelefono.error_text = "Numero de telefono no valido" page.update() if len(ubicacion.value) in range(1, 3): ubicacion.error_text = "Minimo de caracteres 3" page.update() elif db.verificarUbicacion(ubicacion.value): page.snack_bar = SnackBar(content=Text("Esta ubicacion ya esta en uso")) page.snack_bar.open = True page.update() elif db.verificarCedula(arregloCedula): page.snack_bar = SnackBar(content=Text("Esta cedula ya esta ligada a un usuario")) page.snack_bar.open = True page.update() elif db.verificarTelefono(arregloTelefono): page.snack_bar = SnackBar(content=Text("Este numero de telefono ya esta asignado a un usuario")) page.snack_bar.open = True page.update() elif db.verificarCorreo(arregloCorreo): page.snack_bar = SnackBar(content=Text("Este correo ya esta en uso")) page.snack_bar.open = True page.update() else: nuevoLider = Lideres(nombre.value, apellido.value, arregloCedula, arregloTelefono, arregloCorreo, ubicacion.value, nivelUser.value) rutas.animar(formulario, contenedor1, contenedor2, page) [/code] Вот как я структурировал другие проверки, и какой способ будет наиболее оптимальным? Было бы очень полезно, если бы вы дали мне пример, чтобы я мог ориентироваться и иметь возможность изменить все проверки