[Erp5-dev] SQLCatalog - search_mode fails - temporary patch

Sebastien Robin seb at nexedi.com
Mon Feb 5 13:20:06 CET 2007


Le Vendredi 2 Février 2007 12:31, bartek a écrit :
> Hello
>
> After recent refactoring, portal_catalog fails if given search_mode
> parameter. I think we should patch it as follows, to make it work at
> least in a basic way (with only general search_mode setting, not per
> column). And maybe think of a better solution - or is a more
> comprehensive refactoring still planned?

The search_mode parameter can be different for each key, thus this parameter 
make sense only if it is defined for some keys, like this:

portal_catalog(title={"query":'aa',"search_mode":"natural"})

  Seb.


>
> Bartek
>
>
> Index: ZSQLCatalog/SQLCatalog.py
> ===================================================================
> --- ZSQLCatalog/SQLCatalog.py   (wersja 12218)
> +++ ZSQLCatalog/SQLCatalog.py   (kopia robocza)
> @@ -406,11 +406,7 @@
>     Additionally you can pass it a search_mode argument ('natural',
> 'in_boolean_mode'
>     or 'with_query_expansion') to use an advanced search mode ('natural'
>     is the default).
> -  search_mode arg can be given for all full_text keys, or for a
> specific key by naming
> -  the argument search_mode_KeyName, or even more specifically,
> search_mode_Table.Key
> -  or search_mode_Table_Key
>
> -
>     bgrain defined in meyhods...
>
>     TODO:
> @@ -1707,7 +1703,7 @@
>       key_list = [] # the list of column keys
>       key_alias_dict = {}
>       for key in kw.keys():
> -      if key not in ('where_expression', 'sort-on', 'sort_on',
> 'sort-order', 'sort_order', 'limit'):
> +      if key not in ('where_expression', 'sort-on', 'sort_on',
> 'sort-order', 'sort_order', 'limit', 'search_mode'):
>           value = kw[key]
>           current_query = None
>           new_query_dict = {}
> @@ -1722,7 +1718,7 @@
>                   new_query_dict[value_key]=value[value_key]
>             else:
>               new_query_dict[key]=value
> -          current_query = Query(**new_query_dict)
> +          current_query = Query(search_mode=kw.get('search_mode'),
> **new_query_dict)
>           query_dict[key]=current_query
>           key_list.extend(current_query.getSQLKeyList())
> _______________________________________________
> Erp5-dev mailing list
> Erp5-dev at erp5.org
> http://erp5.org/mailman/listinfo/erp5-dev

-- 
Sebastien Robin, Nexedi Project Manager
Nexedi: Consulting and Development of Free / Open Source Software
http://www.nexedi.com
ERP5: Free / Open Source ERP Software for small and medium companies
http://www.erp5.org



More information about the Erp5-dev mailing list