From 2614b60ebc8bf5e22f72405600e6f5df5c96a8d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20G=C3=B3rny?= <bartek@gorny.edu.pl> Date: Tue, 5 Sep 2006 15:27:31 +0000 Subject: [PATCH] Extended search functions (requires SQLCatalog patch) git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@9667 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../ExtensionTemplateItem/searchUtils.py | 13 +++++++++--- .../erp5_dms/DMS_getAdvancedSearchResults.xml | 20 +++++++++++++++++-- bt5/erp5_dms/bt/change_log | 3 +++ bt5/erp5_dms/bt/revision | 2 +- bt5/erp5_dms/bt/version | 2 +- 5 files changed, 33 insertions(+), 7 deletions(-) diff --git a/bt5/erp5_dms/ExtensionTemplateItem/searchUtils.py b/bt5/erp5_dms/ExtensionTemplateItem/searchUtils.py index e5dae40e3e..79a393ef68 100644 --- a/bt5/erp5_dms/ExtensionTemplateItem/searchUtils.py +++ b/bt5/erp5_dms/ExtensionTemplateItem/searchUtils.py @@ -2,13 +2,17 @@ import re # parsing defined here -r=re.compile('(\w+:"[^"]+"|\w+:[\w\-.]+)') +simulation_states=('released','public','submitted') +r=re.compile('(\w+:"[^"]+"|\w+:[\w/\-.]+)') filetyper=lambda s:('source_reference','%%.%s' % s) filestripper=lambda s: ('source_reference',s.replace('"','')) -paramsmap=dict(file=filestripper,type='portal_type',reference='reference',filetype=filetyper) +addarchived=lambda s: ('simulation_state',simulation_states+('archived',)) +paramsmap=dict(file=filestripper,type='portal_type',reference='reference',filetype=filetyper,archived=addarchived,\ + language='language',version='version') def analyze(params): params['SearchableText']='' + params['simulation_state']=simulation_states def cutter(s): ss=s.split(':') if len(ss)==1: @@ -20,6 +24,8 @@ def analyze(params): except TypeError: if paramsmap.has_key(ss[0]): params[paramsmap.get(ss[0])]=ss[1] + else: + params[ss[0]]=ss[1] return cutter def parseSearchString(searchstring): @@ -27,9 +33,10 @@ def parseSearchString(searchstring): l=r.split(searchstring) print l map(analyze(params),l) + params['SearchableText']=params['SearchableText'].strip() return params if __name__=='__main__': #searchstring='byle cisnie zego file:"ble ble.doc" filetype:doc type:Text poza tym reference:abc-def' - searchstring='byle "cisnie zego" file:"ble ble.doc" type:Text poza tym reference:abc-def' + searchstring='byle "cisnie zego" file:"ble ble.doc" type:Text poza tym reference:abc-def dupa:kwas/zbita' print parseSearchString(searchstring) diff --git a/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_getAdvancedSearchResults.xml b/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_getAdvancedSearchResults.xml index a3f68ee009..eeec757a37 100644 --- a/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_getAdvancedSearchResults.xml +++ b/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/DMS_getAdvancedSearchResults.xml @@ -70,7 +70,17 @@ <key> <string>_body</string> </key> <value> <string encoding="cdata"><![CDATA[ -kw.update(context.parseSearchString(kw.get(\'SearchableText\',\'\')))\n +args=context.parseSearchString(kw.get(\'SearchableText\',\'\'))\n +args[\'portal_type\']=context.getPortalDocumentTypeList()\n +cats=[]\n +bases=context.portal_categories.getBaseCategoryList()\n +for k,v in args.items():\n + if k in bases:\n + cats.append(\'/\'.join((k,v)))\n +if cats!=[]:\n + args[\'category\']=cats\n +context.log(\'args\',args)\n +kw.update(args)\n \n cf=kw.get(\'creation_from\')\n ct=kw.get(\'creation_to\')\n @@ -137,13 +147,19 @@ return context.portal_catalog(**kw)\n <string>kw</string> <string>_getattr_</string> <string>context</string> + <string>args</string> + <string>_write_</string> + <string>cats</string> + <string>bases</string> + <string>_getiter_</string> + <string>k</string> + <string>v</string> <string>cf</string> <string>ct</string> <string>mf</string> <string>mt</string> <string>wheres</string> <string>str</string> - <string>_write_</string> <string>_apply_</string> </tuple> </value> diff --git a/bt5/erp5_dms/bt/change_log b/bt5/erp5_dms/bt/change_log index 8aad120deb..292d6fe138 100644 --- a/bt5/erp5_dms/bt/change_log +++ b/bt5/erp5_dms/bt/change_log @@ -1,3 +1,6 @@ +2006-09-05 BG +Extended search functions (requires SQLCatalog patch) + 2006-08-30 BG Added ImageDocument type; assigned types to group dms_document. diff --git a/bt5/erp5_dms/bt/revision b/bt5/erp5_dms/bt/revision index c9c41087e2..5a396e28e8 100644 --- a/bt5/erp5_dms/bt/revision +++ b/bt5/erp5_dms/bt/revision @@ -1 +1 @@ -114 \ No newline at end of file +121 \ No newline at end of file diff --git a/bt5/erp5_dms/bt/version b/bt5/erp5_dms/bt/version index 3c3fca5cde..01661f4493 100644 --- a/bt5/erp5_dms/bt/version +++ b/bt5/erp5_dms/bt/version @@ -1 +1 @@ -0.70 \ No newline at end of file +0.71 \ No newline at end of file -- 2.30.9