[Erp5-report] r18880 - /erp5/trunk/products/ERP5Type/patches/WorkflowTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Jan 28 11:12:31 CET 2008


Author: vincent
Date: Mon Jan 28 11:12:30 2008
New Revision: 18880

URL: http://svn.erp5.org?rev=18880&view=rev
Log:
Add an src__ parameter to WorkflowTool_listActions patch to get SQL query list instead of action list.
Remove unneeded commented-out LOG (now, source is available).
Do not use intermediate parameter dict search_result_kw now that only one call with those parameters remains.
Note: SQL used to refresh worklist cache table is not inclued in this change.

Modified:
    erp5/trunk/products/ERP5Type/patches/WorkflowTool.py

Modified: erp5/trunk/products/ERP5Type/patches/WorkflowTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/patches/WorkflowTool.py?rev=18880&r1=18879&r2=18880&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/patches/WorkflowTool.py (original)
+++ erp5/trunk/products/ERP5Type/patches/WorkflowTool.py Mon Jan 28 11:12:30 2008
@@ -446,7 +446,7 @@
               'category': metadata['action_box_category']})
   return action_list
 
-def WorkflowTool_listActions(self, info=None, object=None):
+def WorkflowTool_listActions(self, info=None, object=None, src__=False):
   """
     Returns a list of actions to be displayed to the user.
 
@@ -512,6 +512,8 @@
           acceptable_key_dict=acceptable_key_dict,
           getSecurityUidListAndRoleColumnDict=\
             getSecurityUidListAndRoleColumnDict)
+      if src__:
+        action_list = []
       for grouped_worklist_dict in worklist_list_grouped_by_condition:
         # Generate the query for this worklist_list
         (total_criterion_id_list, query) = \
@@ -519,31 +521,36 @@
         group_by_expression = ', '.join(total_criterion_id_list)
         assert COUNT_COLUMN_TITLE not in total_criterion_id_list
         select_expression = select_expression_prefix + group_by_expression
-        search_result_kw = {'select_expression': select_expression,
-                            'group_by_expression': group_by_expression,
-                            'query': query}
-        #LOG('WorklistGeneration', WARNING, 'Using query: %s' % \
-        #    (search_result(src__=1, **search_result_kw), ))
-        catalog_brain_result = search_result(**search_result_kw)
-        grouped_worklist_result = sumCatalogResultByWorklist(
-          grouped_worklist_dict=grouped_worklist_dict,
-          catalog_result=catalog_brain_result)
-        for key, value in grouped_worklist_result.iteritems():
-          worklist_result_dict[key] = value + worklist_result_dict.get(key, 0)
-      action_list = generateActionList(worklist_metadata=worklist_metadata,
-                                       worklist_result=worklist_result_dict,
-                                       portal_url=portal_url)
-      def get_action_ident(action):
-        return '/'.join((action['workflow_id'], action['worklist_id']))
-      def action_cmp(action_a, action_b):
-        return cmp(get_action_ident(action_a), get_action_ident(action_b))
-      action_list.sort(action_cmp)
+        catalog_brain_result = search_result(select_expression=select_expression,
+                                             group_by_expression=group_by_expression,
+                                             query=query,
+                                             src__=src__)
+        if src__:
+          action_list.append(catalog_brain_result)
+        else:
+          grouped_worklist_result = sumCatalogResultByWorklist(
+            grouped_worklist_dict=grouped_worklist_dict,
+            catalog_result=catalog_brain_result)
+          for key, value in grouped_worklist_result.iteritems():
+            worklist_result_dict[key] = value + worklist_result_dict.get(key, 0)
+      if not src__:
+        action_list = generateActionList(worklist_metadata=worklist_metadata,
+                                         worklist_result=worklist_result_dict,
+                                         portal_url=portal_url)
+        def get_action_ident(action):
+          return '/'.join((action['workflow_id'], action['worklist_id']))
+        def action_cmp(action_a, action_b):
+          return cmp(get_action_ident(action_a), get_action_ident(action_b))
+        action_list.sort(action_cmp)
       return action_list
     user = str(_getAuthenticatedUser(self))
-    _getWorklistActionList = CachingMethod(_getWorklistActionList,
-      id=('_getWorklistActionList', user, portal_url),
-      cache_factory = 'erp5_ui_short')
-    actions.extend(_getWorklistActionList())
+    if src__:
+      actions = _getWorklistActionList()
+    else:
+      _getWorklistActionList = CachingMethod(_getWorklistActionList,
+        id=('_getWorklistActionList', user, portal_url),
+        cache_factory = 'erp5_ui_short')
+      actions.extend(_getWorklistActionList())
   return actions
 
 WorkflowTool.listActions = WorkflowTool_listActions




More information about the Erp5-report mailing list