[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