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

bartek bartek at erp5.pl
Fri Feb 2 12:31:35 CET 2007


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?

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())



More information about the Erp5-dev mailing list