[Erp5-report] r30795 - /erp5/trunk/products/ERP5Form/Extensions/

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Nov 20 16:51:08 CET 2009


Author: jerome
Date: Fri Nov 20 16:51:08 2009
New Revision: 30795

URL: http://svn.erp5.org?rev=30795&view=rev
Log:
reuse the list method from the listbox (which must support group_by and
select_expression)

Modified:
    erp5/trunk/products/ERP5Form/Extensions/Folder_getWorkflowActionDocumentList.py

Modified: erp5/trunk/products/ERP5Form/Extensions/Folder_getWorkflowActionDocumentList.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/Extensions/Folder_getWorkflowActionDocumentList.py?rev=30795&r1=30794&r2=30795&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/Extensions/Folder_getWorkflowActionDocumentList.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/Extensions/Folder_getWorkflowActionDocumentList.py [utf8] Fri Nov 20 16:51:08 2009
@@ -29,7 +29,7 @@
 from Products.PythonScripts.standard import Object
 
 
-def getDocumentGroupByWorkflowStateList(self, **kw):
+def getDocumentGroupByWorkflowStateList(self, form_id='', **kw):
   """This returns the list of all "document groups", ie document of the same
   portal type, in the same workflow state.
   
@@ -53,6 +53,12 @@
   
   selection_name = request['selection_name']
 
+  list_method_name = 'searchFolder'
+  form = getattr(portal, form_id)
+  listbox = getattr(form, 'listbox', None)
+  if listbox is not None:
+    list_method_name = listbox.get_value('list_method').method_name
+
   # guess all column name from catalog schema
   possible_state_list = [column_name for column_name in
        self.getPortalObject().portal_catalog.getSQLCatalog().getColumnMap() if
@@ -73,10 +79,10 @@
       selection_params['group_by'] = ('catalog.portal_type',
                                       'catalog.%s' % workflow_state)
       selection_params['select_expression'] = (
-          'count(catalog.uid) as count, catalog.portal_type, catalog.%s'
+          'catalog.path, count(catalog.uid) as count, catalog.portal_type, catalog.%s'
             % workflow_state)
       
-      for brain in self.searchFolder(**selection_params):
+      for brain in getattr(self, list_method_name)(**selection_params):
         doc = brain.getObject()
         for workflow in wf_tool.getWorkflowsFor(doc):
           state_var = workflow.variables.getStateVar()




More information about the Erp5-report mailing list