Beispiel #1
0
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
Beispiel #2
0
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