def buscar_ciudad_en_bd(nombre, ventana_padre = None): """ Busca la ciudad que más se parezca al nombre recibido y devuelve el objeto o crea una nueva ciudad. Devuelve None si no se parece ninguna ni el usuario ha decidio crearla nueva. """ from utils.spelling import SpellCorrector nombres = " ".join([c.ciudad for c in pclases.Ciudad.select()]) s = SpellCorrector(nombres) nombre_sugerido = s.correct(nombre).title() try: # Busco. Si está en la BD, pues ya está. ciudad = pclases.Ciudad.selectBy(ciudad = nombre_sugerido)[0] except IndexError: # Si no está, pregunto si crear nuevo. if utils.ui.dialogo(titulo = "¿NUEVA CIUDAD?", texto = "¿Insertar ciudad en la base de datos?", padre = ventana_padre): provincia = buscar_provincia_en_bd(nombre_provincia, self.wids['ventana']) if provincia: ciudad = pclases.Ciudad(provincia = provincia, ciudad = ciudad) else: ciudad = None else: ciudad = None return ciudad
def buscar_provincia_en_bd(nombre, ventana_padre = None): """ Busca la provincia que más se parezca al nombre recibido y devuelve el objeto o crea una nueva provincia. Devuelve None si no se parece ninguna ni el usuario ha decidio crearla nueva. """ from utils.spelling import SpellCorrector nombres = " ".join([c.provincia for c in pclases.Provincia.select()]) s = SpellCorrector(nombres) nombre_sugerido = s.correct(nombre).title() try: # Busco. Si está en la BD, pues ya está. provincia = pclases.Provincia.selectBy(provincia = nombre_sugerido)[0] except IndexError: # Si no está, pregunto si crear nuevo. if utils.ui.dialogo(titulo = "¿NUEVA PROVINCIA?", texto = "¿Insertar provincia en la base de datos?", padre = ventana_padre): provincia = pclases.Provincia(provincia = provincia) else: provincia = None return provincia