[Checkins] SVN: Products.DCWorkflow/trunk/Products/DCWorkflow/ Don't crash worklist's 'manage_main' if variables are Expression objects.

Tres Seaver tseaver at palladion.com
Tue Mar 8 16:06:20 EST 2011


Log message for revision 120813:
  Don't crash worklist's 'manage_main' if variables are Expression objects.
  
  Fixes https://bugs.launchpad.net/zope-cmf/+bug/731394
  
  Index: Products/DCWorkflow/CHANGES.txt
  ===================================================================
  --- Products/DCWorkflow/CHANGES.txt	(revision 120812)
  +++ Products/DCWorkflow/CHANGES.txt	(working copy)
  @@ -4,6 +4,9 @@
   2.3.0-alpha (unreleased)
   ------------------------
  +
   - Require at least Zope 2.13.4.
   
   - StateChangeInfo: Removed support for deprecated '_isPortalRoot' marker.
  

Changed:
  U   Products.DCWorkflow/trunk/Products/DCWorkflow/CHANGES.txt
  U   Products.DCWorkflow/trunk/Products/DCWorkflow/dtml/worklists.dtml
  U   Products.DCWorkflow/trunk/Products/DCWorkflow/tests/test_DCWorkflow.py

-=-
Modified: Products.DCWorkflow/trunk/Products/DCWorkflow/CHANGES.txt
===================================================================
--- Products.DCWorkflow/trunk/Products/DCWorkflow/CHANGES.txt	2011-03-08 17:18:04 UTC (rev 120812)
+++ Products.DCWorkflow/trunk/Products/DCWorkflow/CHANGES.txt	2011-03-08 21:06:19 UTC (rev 120813)
@@ -4,6 +4,9 @@
 2.3.0-alpha (unreleased)
 ------------------------
 
+- Don't crash worklist's ``manage_main`` if variables are Expression objects.
+  (https://bugs.launchpad.net/zope-cmf/+bug/731394)
+
 - Require at least Zope 2.13.4.
 
 - StateChangeInfo: Removed support for deprecated '_isPortalRoot' marker.

Modified: Products.DCWorkflow/trunk/Products/DCWorkflow/dtml/worklists.dtml
===================================================================
--- Products.DCWorkflow/trunk/Products/DCWorkflow/dtml/worklists.dtml	2011-03-08 17:18:04 UTC (rev 120812)
+++ Products.DCWorkflow/trunk/Products/DCWorkflow/dtml/worklists.dtml	2011-03-08 21:06:19 UTC (rev 120813)
@@ -21,12 +21,8 @@
    <dtml-if getVarMatchKeys>
     Catalog matches:
     <dtml-in getVarMatchKeys sort>
-    <dtml-let key=sequence-item value="getVarMatch(key)">
-     <code>&dtml-key;</code> =
-     <dtml-in value>
-       <code>&dtml-sequence-item;</code>
-       <dtml-unless sequence-end>or</dtml-unless>
-     </dtml-in>
+    <dtml-let key=sequence-item value="getVarMatchText(key)">
+     <code>&dtml-key;</code> = <code>&dtml-value;</code>
      <dtml-unless sequence-end>;</dtml-unless>
     </dtml-let>
     </dtml-in>

Modified: Products.DCWorkflow/trunk/Products/DCWorkflow/tests/test_DCWorkflow.py
===================================================================
--- Products.DCWorkflow/trunk/Products/DCWorkflow/tests/test_DCWorkflow.py	2011-03-08 17:18:04 UTC (rev 120812)
+++ Products.DCWorkflow/trunk/Products/DCWorkflow/tests/test_DCWorkflow.py	2011-03-08 21:06:19 UTC (rev 120813)
@@ -38,8 +38,8 @@
 
     def setUp(self):
         SecurityTest.setUp(self)
-        self.site = DummySite('site')
-        self.root._setObject( 'site', self.site )
+        self.root._setObject('site', DummySite('site') )
+        self.site = self.root._getOb('site')
         self.site._setObject( 'portal_types', DummyTool() )
         self.site._setObject( 'portal_workflow', WorkflowTool() )
         self._constructDummyWorkflow()
@@ -204,7 +204,19 @@
         self.assertNotEquals(None,
             wf.worklists._getOb('published_documents_new', None))
 
+    def test_worklists(self):
+        wftool = self.root.site.portal_workflow
 
+        wf = self._getDummyWorkflow()
+        worklist =  wf.worklists._getOb('published_documents')
+        # check ZMI
+        wf.worklists.manage_main(self.REQUEST)
+        # store an Expression
+        worklist.setProperties('', props={'var_match_state': 'string:private'})
+        # check ZMI
+        wf.worklists.manage_main(self.app.REQUEST)
+
+
     # XXX more tests...
 
 



More information about the checkins mailing list