From 77595f9111b6b9d57d25b378f244cfdebb97b260 Mon Sep 17 00:00:00 2001 From: Ivan Tyagov <ivan@nexedi.com> Date: Fri, 28 Jan 2011 09:07:34 +0000 Subject: [PATCH] Add site configurable 'full_text' scriptable key. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@42730 20353a03-c40f-0410-a6d1-a30d3c3de9de --- ...Catalog_makeFullTextQuery.catalog_keys.xml | 2 + .../SQLCatalog_makeFullTextQuery.xml | 78 ++++++++++++++++++ .../scriptable_key_list.xml | 1 + .../erp5_mysql_innodb_catalog.xml | 26 ++++++ .../SQLCatalog_isSphinxSearchAvailable.xml | 81 +++++++++++++++++++ .../erp5_mysql_innodb_catalog/bt/change_log | 3 + .../erp5_mysql_innodb_catalog/bt/revision | 2 +- .../bt/template_catalog_method_id_list | 1 + .../bt/template_catalog_scriptable_key_list | 3 +- .../bt/template_skin_id_list | 1 + 10 files changed, 196 insertions(+), 2 deletions(-) create mode 100644 product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_makeFullTextQuery.catalog_keys.xml create mode 100644 product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_makeFullTextQuery.xml create mode 100644 product/ERP5/bootstrap/erp5_mysql_innodb_catalog/SkinTemplateItem/portal_skins/erp5_mysql_innodb_catalog.xml create mode 100644 product/ERP5/bootstrap/erp5_mysql_innodb_catalog/SkinTemplateItem/portal_skins/erp5_mysql_innodb_catalog/SQLCatalog_isSphinxSearchAvailable.xml create mode 100644 product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_skin_id_list diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_makeFullTextQuery.catalog_keys.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_makeFullTextQuery.catalog_keys.xml new file mode 100644 index 0000000000..a540f9431e --- /dev/null +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_makeFullTextQuery.catalog_keys.xml @@ -0,0 +1,2 @@ +<catalog_method> +</catalog_method> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_makeFullTextQuery.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_makeFullTextQuery.xml new file mode 100644 index 0000000000..3cf4e8a333 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogMethodTemplateItem/portal_catalog/erp5_mysql_innodb/SQLCatalog_makeFullTextQuery.xml @@ -0,0 +1,78 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_body</string> </key> + <value> <string>"""\n + Generic full text searchable key which based on site configuration will use\n + available third party search engine (Sphinx) or fall back to default \n + MySQL full text search.\n +"""\n +from Products.ZSQLCatalog.SQLCatalog import Query\n +\n +if context.SQLCatalog_isSphinxSearchAvailable():\n + query = Query(**{\'sphinxse_query\':value})\n +else:\n + query = Query(**{\'full_text.SearchableText\':value})\n +return query\n +</string> </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>value</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>SQLCatalog_makeFullTextQuery</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogScriptableKeyTemplateItem/scriptable_key_list.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogScriptableKeyTemplateItem/scriptable_key_list.xml index a0e5a4b0bb..01f1277591 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogScriptableKeyTemplateItem/scriptable_key_list.xml +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/CatalogScriptableKeyTemplateItem/scriptable_key_list.xml @@ -1,4 +1,5 @@ <key_list> <key>advanced_search_text | SQLCatalog_makeQuickSearchQuery</key> + <key>full_text | SQLCatalog_makeFullTextQuery</key> <key>quick_search_text | SQLCatalog_makeQuickSearchQuery</key> </key_list> \ No newline at end of file diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/SkinTemplateItem/portal_skins/erp5_mysql_innodb_catalog.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/SkinTemplateItem/portal_skins/erp5_mysql_innodb_catalog.xml new file mode 100644 index 0000000000..69317d4e82 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/SkinTemplateItem/portal_skins/erp5_mysql_innodb_catalog.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="OrderedFolder" module="OFS.OrderedFolder"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>erp5_mysql_innodb_catalog</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/SkinTemplateItem/portal_skins/erp5_mysql_innodb_catalog/SQLCatalog_isSphinxSearchAvailable.xml b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/SkinTemplateItem/portal_skins/erp5_mysql_innodb_catalog/SQLCatalog_isSphinxSearchAvailable.xml new file mode 100644 index 0000000000..8796aeec46 --- /dev/null +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/SkinTemplateItem/portal_skins/erp5_mysql_innodb_catalog/SQLCatalog_isSphinxSearchAvailable.xml @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_body</string> </key> + <value> <string>"""\n + Used to check if Sphinx search is available.\n + Proxy mode added so this check can happen for anonymous users.\n +"""\n +# XXX Should we use system preference here?\n +portal_catalog = context.getPortalObject().portal_catalog\n +return \'sphinxse_index\' in getattr(portal_catalog, portal_catalog.default_sql_catalog_id).getCatalogSearchTableIds()\n +</string> </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>_proxy_roles</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>SQLCatalog_isSphinxSearchAvailable</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log index a4542ee421..fc8e3d8f1b 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/change_log @@ -1,3 +1,6 @@ +2011-01-28 Ivan +* Add site configurable 'full_text' scriptable key + 2010-11-08 Kazuhiko * support cataloging multiple subjects. * subject related tables are moved from erp5_ingestion_mysql_innodb_catalog. diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision index 1e3852840b..02cfe0b571 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/revision @@ -1 +1 @@ -211 \ No newline at end of file +213 \ No newline at end of file diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_method_id_list b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_method_id_list index 659b79efcc..e9a42fb318 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_method_id_list +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_method_id_list @@ -1,5 +1,6 @@ erp5_mysql_innodb/SQLCatalog_catalogTransformation erp5_mysql_innodb/SQLCatalog_catalogTransformationList +erp5_mysql_innodb/SQLCatalog_makeFullTextQuery erp5_mysql_innodb/SQLCatalog_makeQuickSearchQuery erp5_mysql_innodb/z0_drop_alarm erp5_mysql_innodb/z0_drop_catalog diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_scriptable_key_list b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_scriptable_key_list index 4075eec4c0..5cb210d590 100644 --- a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_scriptable_key_list +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_catalog_scriptable_key_list @@ -1,2 +1,3 @@ quick_search_text | SQLCatalog_makeQuickSearchQuery -advanced_search_text | SQLCatalog_makeQuickSearchQuery \ No newline at end of file +advanced_search_text | SQLCatalog_makeQuickSearchQuery +full_text | SQLCatalog_makeFullTextQuery \ No newline at end of file diff --git a/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_skin_id_list b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_skin_id_list new file mode 100644 index 0000000000..1e510f863e --- /dev/null +++ b/product/ERP5/bootstrap/erp5_mysql_innodb_catalog/bt/template_skin_id_list @@ -0,0 +1 @@ +erp5_mysql_innodb_catalog \ No newline at end of file -- 2.30.9