Commit c1304c30 authored by Tres Seaver's avatar Tres Seaver

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.
parent 83bf6651
......@@ -4,6 +4,9 @@ Products.DCWorkflow Changelog
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.
......
......@@ -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>
......
......@@ -38,8 +38,8 @@ class DCWorkflowDefinitionTests(SecurityTest):
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,6 +204,18 @@ class DCWorkflowDefinitionTests(SecurityTest):
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...
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment