Le thème créé pour realis est reconverti en thème « photo » pour Plinn core.
[Plinn.git] / skins / photo_theme / doFormSearch.py
diff --git a/skins/photo_theme/doFormSearch.py b/skins/photo_theme/doFormSearch.py
new file mode 100755 (executable)
index 0000000..d917835
--- /dev/null
@@ -0,0 +1,45 @@
+## Script (Python) "doFormSearch"
+##parameters=REQUEST
+##title=Pre-process form variables, then return catalog query results.
+##
+vars = REQUEST.form
+form_vars = {}
+skip_vars = ['strCreator']
+select_vars = ( 'review_state'
+                         , 'Subject'
+                         , 'portal_type'
+                         )
+date_vars = ('created',
+                        )
+epoch = DateTime("1970/01/01 00:00:00 GMT")
+
+for k, v in vars.items():
+
+       if k in select_vars:
+               if same_type( v, [] ):
+                       v = filter( None, v )
+               if not v:
+                       continue
+
+       if k in date_vars:
+               if v == epoch and vars.get(k+'_usage') == 'range:min':
+                       skip_vars.append(k+'_usage')
+                       continue
+
+       form_vars[ k ] = v
+
+if form_vars.has_key('portal_type') :
+       try : form_vars['portal_type'].remove('Member Data')
+       except ValueError : pass
+else :
+       form_vars['portal_type'] = context.portal_types.objectIds()
+
+for k in skip_vars:
+       if form_vars.has_key(k) :
+               del form_vars[k]
+
+if vars.has_key('strCreator') :
+       form_vars['Creator'] = [ m.id for m in context.portal_membership.looseSearchMembers(vars['strCreator']) ]
+
+results = context.portal_catalog( form_vars )
+return {'results':results, 'searchArgs':form_vars}