Exemple #1
0
 def sugerir_productos(self, txt):
     """
     Intenta sugerir productos según el corrector Norving.
     """
     dirutils = os.path.join("..", "utils")
     if dirutils not in sys.path:
         sys.path.append(dirutils)
     import spelling
     palabras = []
     for pc in pclases.ProductoCompra.select():
         palabras.append(pc.codigo.lower())
         palabras.append(pc.descripcion.lower())
     for pc in pclases.ProductoVenta.select():
         palabras.append(pc.codigo.lower())
         palabras.append(pc.descripcion.lower())
     palabras = " ".join(palabras)
     corrector = spelling.SpellCorrector(palabras)
     sugerencia = corrector.correct(txt.lower())
     if sugerencia != txt:
         res = utils.dialogo(titulo = "SUGERENCIA DE BÚSQUEDA", 
                 texto="No se encontró «%s», ¿tal vez quiso decir «%s»?" % (
                         txt, sugerencia), 
                 padre = self.wids['ventana'])
         if res:
             res = ([p for p in utils.buscar_productos_compra(sugerencia)]+ 
                    [p for p in utils.buscar_productos_venta(sugerencia)])
         else:
             res = []
     else:
         raise ValueError, "Sin alternativas que sugerir."
     return res
Exemple #2
0
 def buscar(self, boton):
     a_buscar = self.wids['e_buscar'].get_text()
     productos = []
     for p in utils.buscar_productos_compra(a_buscar):
         productos.append(p)
     for p in utils.buscar_productos_venta(a_buscar):
         productos.append(p)
     if not len(productos) and len(a_buscar): 
         # Busca algo de texto pero no se encontró
         try:
             productos = self.sugerir_productos(a_buscar)
         except (ImportError, ValueError):
             utils.dialogo_info(titulo = "SIN RESULTADOS", 
                                texto = "No se encontraron productos con el"
                                        "texto «%s»." % a_buscar, 
                                padre = self.wids['ventana'])
     self.rellenar_tabla(productos)