[Erp5-report] r33277 ivan - in /erp5/trunk/bt5/erp5_dms: SkinTemplateItem/portal_skins/erp5...
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Mar 2 13:30:31 CET 2010
Author: ivan
Date: Tue Mar 2 13:30:30 2010
New Revision: 33277
URL: http://svn.erp5.org?rev=33277&view=rev
Log:
Refactor script and make it use provided arguments with higher priority than REQUEST (fall-back to it whenever needed).
Modified:
erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Base_assembleSearchString.xml
erp5/trunk/bt5/erp5_dms/bt/revision
Modified: erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Base_assembleSearchString.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Base_assembleSearchString.xml?rev=33277&r1=33276&r2=33277&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Base_assembleSearchString.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Base_assembleSearchString.xml [utf8] Tue Mar 2 13:30:30 2010
@@ -54,96 +54,108 @@
<item>
<key> <string>_body</string> </key>
<value> <string>"""\n
-This script receives a request from advanced search form and \n
-puts together a search string in a search syntax, depending on\n
-parameters received. It is the reverse of Base_parseSearchString external\n
-method.\n
+ This script receives a request from advanced search form and \n
+ puts together a search string in a search syntax, depending on\n
+ parameters received. It is the reverse of Base_parseSearchString external\n
+ method.\n
"""\n
-req = context.REQUEST\n
-\n
-search_straight = req.get(\'searchabletext\', \'\')\n
-if search_straight != \'\':\n
- return search_straight\n
+MARKER = [\'\', None]\n
+request = context.REQUEST\n
+\n
+# one can specify a direct search string, \n
+# in this case simply returning it is expected\n
+searchabletext = kw.get(\'searchabletext\', \n
+ request.get(\'searchabletext\', None))\n
+if searchabletext not in MARKER:\n
+ return searchabletext\n
\n
# words to search in \'any of the words\' form - left intact\n
-search_string = req.get(\'searchabletext_any\',\'\')\n
-\n
-# exact phrase to search for - double-quoted\n
-search_phrase = req.get(\'searchabletext_phrase\',\'\')\n
-if search_phrase != "":\n
- search_string += \' "\' + search_phrase + \'"\'\n
+searchabletext_any = kw.get(\'searchabletext_any\', \n
+ request.get(\'searchabletext_any\', \'\'))\n
+search_string = searchabletext_any\n
+\n
+# exact phrase to search for double-quoted\n
+searchabletext_phrase = kw.get(\'searchabletext_phrase\', \n
+ request.get(\'searchabletext_phrase\', None))\n
+if searchabletext_phrase not in MARKER:\n
+ search_string += \' \\"%s\\"\' %searchabletext_phrase\n
\n
# search "with all of the words" - each word prefixed by "+"\n
-search_all = req.get(\'searchabletext_all\',\'\')\n
-if search_all != "":\n
- search_string += \' \' + \' \'.join(\'+\' + word for word in search_all.split(\' \'))\n
+searchabletext_all = kw.get(\'searchabletext_all\',\n
+ request.get(\'searchabletext_all\', None))\n
+if searchabletext_all not in MARKER:\n
+ search_string += \' %s\' %\' \'.join(\'+%s\' %word for word in searchabletext_all.split(\' \'))\n
\n
# search without these words - every word prefixed by "-"\n
-search_without = req.get(\'searchabletext_without\',\'\')\n
-if search_without!="":\n
- search_string += \' \' + \' \'.join(\'-\' + word for word in search_without.split(\' \'))\n
+searchabletext_without = kw.get(\'searchabletext_without\',\n
+ request.get(\'searchabletext_without\', None))\n
+if searchabletext_without not in MARKER:\n
+ search_string += \' %s\' %\' \'.join(\'-%s\' %word for word in searchabletext_without.split(\' \'))\n
\n
# search limited to a certain date range - add "created:xxx"\n
-daterange = req.get(\'created_within\',\'\')\n
-if daterange!=\'\':\n
- search_string += \' created:\' + daterange\n
+created_within = kw.get(\'created_within\', request.get(\'created_within\', None))\n
+if created_within not in MARKER:\n
+ search_string += \' created:%s\' %created_within\n
\n
# only given portal_types - add "type:Type" or type:(Type1,Type2...)\n
-portal_type_list = req.get(\'search_portal_type\')\n
+portal_type_list = kw.get(\'search_portal_type\', \n
+ request.get(\'search_portal_type\'))\n
if portal_type_list == \'all\':\n
portal_type_list=None\n
-if isinstance(portal_type_list,str):\n
+if isinstance(portal_type_list, str):\n
portal_type_list=[portal_type_list]\n
if portal_type_list:\n
if len(portal_type_list)==1:\n
search_string += \' type:"%s"\' % portal_type_list[0]\n
else:\n
- search_string += \' type:(%s)\' % \',\'.join(portal_type_list)\n
+ search_string += \' type:(%s)\' %\',\'.join(portal_type_list)\n
\n
# search by reference\n
-ref = req.get(\'reference\')\n
-if ref:\n
- search_string += \' reference:%s\' % ref\n
+reference = kw.get(\'reference\', request.get(\'reference\', None))\n
+if reference not in MARKER:\n
+ search_string += \' reference:%s\' % reference\n
\n
# search by version\n
-ver = req.get(\'version\')\n
-if ver:\n
- search_string += \' version:%s\' % ver\n
+version = kw.get(\'version\', request.get(\'version\'))\n
+if version not in MARKER:\n
+ search_string += \' version:%s\' %version\n
\n
# search by language\n
-lng=req.get(\'language\')\n
-if lng and lng != \'0\':\n
- search_string += \' language:%s\' % lng\n
+language=kw.get(\'language\', request.get(\'language\', None))\n
+if language not in MARKER and language != \'0\':\n
+ search_string += \' language:%s\' % language\n
\n
# category search\n
for category in (\'group\', \'site\', \'function\', \'publication_section\', \'classification\'):\n
- category_value = req.get(\'subfield_field_your_category_list_\' + category)\n
- if category_value:\n
+ category_field_id = \'subfield_field_your_category_list_%s\' %category\n
+ category_value = kw.get(category_field_id, request.get(category_field_id, None))\n
+ if category_value not in MARKER:\n
search_string += \' %s:%s\' % (category, category_value)\n
\n
# Category title search\n
-for category in (\'contributor_title\', ):\n
- category_value = req.get(category)\n
- if category_value:\n
- search_string += \' %s:%s\' % (category, category_value)\n
-\n
+for category in (\'contributor_title\',):\n
+ category_value = kw.get(category, request.get(category, None))\n
+ if category_value not in MARKER:\n
+ search_string += \' %s:%s\' %(category, category_value)\n
\n
#only my docs\n
-mine = req.get(\'mine\')\n
-if mine:\n
+mine = kw.get(\'mine\', request.get(\'mine\', None))\n
+if mine not in MARKER:\n
search_string += \' mine:yes\'\n
\n
# only newest versions\n
-newest = req.get(\'newest\')\n
-if newest:\n
+newest = kw.get(\'newest\', request.get(\'newest\', None))\n
+if newest not in MARKER:\n
search_string += \' newest:yes\'\n
\n
# search mode\n
-search_mode = req.get(\'search_mode\')\n
-search_mode_map={\'in_boolean_mode\':\'boolean\',\'with_query_expansion\':\'expanded\'}\n
-if search_mode and search_mode_map.has_key(search_mode):\n
+search_mode = kw.get(\'search_mode\', request.get(\'search_mode\', None))\n
+search_mode_map={\'in_boolean_mode\':\'boolean\',\n
+ \'with_query_expansion\':\'expanded\'}\n
+if search_mode not in MARKER and search_mode_map.has_key(search_mode):\n
search_string += \' mode:%s\' % search_mode_map[search_mode]\n
\n
+context.log(search_string)\n
return search_string\n
</string> </value>
</item>
@@ -155,7 +167,7 @@
</item>
<item>
<key> <string>_params</string> </key>
- <value> <string>*a,**kw</string> </value>
+ <value> <string>**kw</string> </value>
</item>
<item>
<key> <string>errors</string> </key>
@@ -181,29 +193,31 @@
<key> <string>co_varnames</string> </key>
<value>
<tuple>
- <string>a</string>
<string>kw</string>
+ <string>None</string>
+ <string>MARKER</string>
<string>_getattr_</string>
<string>context</string>
- <string>req</string>
- <string>search_straight</string>
+ <string>request</string>
+ <string>searchabletext</string>
+ <string>searchabletext_any</string>
<string>search_string</string>
- <string>search_phrase</string>
+ <string>searchabletext_phrase</string>
<string>_inplacevar_</string>
- <string>search_all</string>
+ <string>searchabletext_all</string>
<string>_getiter_</string>
- <string>search_without</string>
- <string>daterange</string>
+ <string>searchabletext_without</string>
+ <string>created_within</string>
<string>portal_type_list</string>
- <string>None</string>
<string>isinstance</string>
<string>str</string>
<string>len</string>
<string>_getitem_</string>
- <string>ref</string>
- <string>ver</string>
- <string>lng</string>
+ <string>reference</string>
+ <string>version</string>
+ <string>language</string>
<string>category</string>
+ <string>category_field_id</string>
<string>category_value</string>
<string>mine</string>
<string>newest</string>
Modified: erp5/trunk/bt5/erp5_dms/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_dms/bt/revision?rev=33277&r1=33276&r2=33277&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_dms/bt/revision [utf8] (original)
+++ erp5/trunk/bt5/erp5_dms/bt/revision [utf8] Tue Mar 2 13:30:30 2010
@@ -1,1 +1,1 @@
-1077
+1078
More information about the Erp5-report
mailing list