[Zope-CMF] DCWorkflow: matching a catalogged variable with user id in woklist

Luca Olivetti luca@wetron.es
Thu, 21 Mar 2002 14:33:50 +0100


Hi,
I have a catalogged variable in my workflow that stores the id of the user to whom the 
task has been assigned.
In his/her worklist I want to show only items assigned to him/her (like, match 
review_state to 'assigned' and match assigned_to to '%(user_id)s'), but, in the default 
implementation, it's only possible to match a variable with a literal string so 
%(user_id)s won't map to the user id (besides, there's no user_id attribute in 
ActionInformation).
I had to do a couple of small changes but since I consider myself a newbie I cannot 
evaluate all ramifications:

--- DCWorkflow/DCWorkflow.py.orig       Thu Mar 21 12:33:30 2002
+++ DCWorkflow/DCWorkflow.py    Thu Mar 21 12:34:42 2002
@@ -218,7 +218,7 @@
                          catalog = getToolByName(self, 'portal_catalog')
                          dict = {}
                          for k, v in qdef.var_matches.items():
-                            dict[k] = v
+                            dict[k] = v % info
                          searchres = apply(catalog.searchResults, (), dict)
                          if not searchres:
                              continue
--- CMFCore/ActionsTool.py.orig Thu Mar 21 12:35:02 2002
+++ CMFCore/ActionsTool.py      Thu Mar 21 12:46:21 2002
@@ -37,6 +37,10 @@
          self.portal = portal = aq_parent(aq_inner(tool))
          membership = getToolByName(tool, 'portal_membership')
          self.isAnonymous = membership.isAnonymousUser()
+        if self.isAnonymous:
+            self.user_id = 'Guest'
+        else:
+            self.user_id = membership.getAuthenticatedMember().getMemberId()
          self.portal_url = portal.absolute_url()
          if folder is not None:
              self.folder_url = folder.absolute_url()


These changes seem not to produce adverse effects, so I'm asking if it's possible to 
incorporate this patches in DCWorkflow/CMFCore (I see that in the cvs version of CMFCore 
the functionality of the ActionInformation class has been moved to the oai class in 
ActionInformation.py).
Or plese tell me if I missed the boat and the above patch is dangerous or useless.

Bye
-- 
Luca Olivetti
Wetron Automatización S.A. http://www.wetron.es/
Tel. +34 93 5883004      Fax +34 93 5883007