[Erp5-report] r27500 - in /erp5/trunk/products/ERP5/bootstrap/erp5_core: SkinTemplateItem/p...

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Jun 10 16:34:34 CEST 2009


Author: kazuhiko
Date: Wed Jun 10 16:34:32 2009
New Revision: 27500

URL: http://svn.erp5.org?rev=27500&view=rev
Log:
* merge Base_showFoundText from erp5_dms.
* move Base_parseSearchString from erp5_dms.

Added:
    erp5/trunk/products/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_parseSearchString.xml
      - copied unchanged from r27402, erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Base_parseSearchString.xml
Modified:
    erp5/trunk/products/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_showFoundText.xml
    erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_showFoundText.xml
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_showFoundText.xml?rev=27500&r1=27499&r2=27500&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_showFoundText.xml [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_showFoundText.xml [utf8] Wed Jun 10 16:34:32 2009
@@ -62,23 +62,58 @@
   words in the text itself.\n
 """\n
 \n
+is_gadget_mode = context.REQUEST.get(\'is_gadget_mode\', 0)\n
+\n
+if is_gadget_mode:\n
+  # in gadget mode less space is available thus show less text\n
+  max_text_length = 100\n
+  max_lines = 1\n
+\n
+def getRandomDocumentTextExcerpt(document_text):\n
+  # try to get somewhat arbitrary choice of searchable attrs\n
+  if isinstance(document_text, str) and document_text!=\'\':\n
+    document_text = document_text.decode(\'utf-8\', \'ignore\')\n
+    start = min(len(document_text) - 300, 200)\n
+    return \'... %s ...\' %document_text[start:start + max_text_length]\n
+  else:\n
+    return \'\'\n
+\n
+# get search words from listbox selection\n
+argument_names = (\'advanced_search_text\', \n
+                  \'your_search_text\',\n
+                  \'title\',\n
+                  \'reference\',\n
+                  \'searchabletext\', \n
+                  \'searchabletext_any\',\n
+                  \'searchabletext_all\', \n
+                  \'searchabletext_phrase\',)\n
+\n
+if document_text is None:\n
+  document_text = context.getSearchableText()\n
+\n
 if selection is not None:\n
   params = selection.getParams()\n
 else:\n
   params = context.portal_selections.getSelectionParamsFor(\'search_result_selection\')\n
-search_words = params.get(\'your_search_text\')\n
-\n
-if search_words is None:\n
-  return \'\'\n
+\n
+params = [params.get(name, \'\') for name in argument_names]\n
+# flatten value if it is list\n
+params = [(hasattr(param, \'sort\') and \' \'.join(param) or param) for param in params]\n
+search_string = \' \'.join(params).strip()\n
+\n
+if search_string != \'\':\n
+  search_argument_list = context.Base_parseSearchString(search_string)\n
+  search_string = search_argument_list.get(\'searchabletext\', \'\')\n
+\n
+if search_string == \'\':\n
+  # the searched words are empty (e.g. because we used only parameters \n
+  # without pure searchable text)\n
+  return getRandomDocumentTextExcerpt(document_text)\n
 else:\n
-\n
-  if document_text is None:\n
-    document_text = context.getSearchableText()\n
-\n
   found_text_fragments = context.Base_getExcerptText(\n
                            context, \\\n
                            document_text, \\\n
-                           search_words, \\\n
+                           search_string, \\\n
                            tags = (\'<em>\', \'</em>\'), \\\n
                            trail = 5, \\\n
                            maxlines = max_lines)\n
@@ -131,11 +166,21 @@
                             <string>selection</string>
                             <string>max_lines</string>
                             <string>max_text_length</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>is_gadget_mode</string>
+                            <string>getRandomDocumentTextExcerpt</string>
+                            <string>argument_names</string>
                             <string>None</string>
-                            <string>_getattr_</string>
                             <string>params</string>
-                            <string>context</string>
-                            <string>search_words</string>
+                            <string>append</string>
+                            <string>$append0</string>
+                            <string>_getiter_</string>
+                            <string>name</string>
+                            <string>param</string>
+                            <string>hasattr</string>
+                            <string>search_string</string>
+                            <string>search_argument_list</string>
                             <string>found_text_fragments</string>
                             <string>map</string>
                             <string>str</string>

Modified: erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision?rev=27500&r1=27499&r2=27500&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision [utf8] (original)
+++ erp5/trunk/products/ERP5/bootstrap/erp5_core/bt/revision [utf8] Wed Jun 10 16:34:32 2009
@@ -1,1 +1,1 @@
-1226
+1227




More information about the Erp5-report mailing list