Tres Seaver wrote:
> yuppie wrote:
>> Moving the notifyWorkflowCreated call from _finishConstruction to the
>> IObjectAddedEvent subscriber changed the behavior of .zexp imports: The
>> workflow state is now always reset to the initial state. AFAICT that's
>> no useful behavior for imports.
>> This is caused by the fact that the notifyCreated method of WorkflowTool
>> always resets the workflow states.
>> Is that a feature or a bug of notifyCreated? Is anybody using
>> notifyCreated for resetting workflow states?
It turned out that CMF itself uses notifyCreated for resetting workflow
That's how copy and paste resets the workflow state.
>> Where is the best place to fix this? Should IObjectAddedEvent be
>> triggered on imports? Should the subscriber call notifyWorkflowCreated
>> if the object already has a workflow history? Should
>> notifyWorkflowCreated call WorkflowTool.notifyCreated if the object
>> already has a workflow history? Should WorkflowTool.notifyCreated call
>> notifyCreated of workflows that already have a state? Should
>> notifyCreated of workflows keep existing states untouched?
>> AFAICS the easiest way to fix this is changing
>> WorkflowTool.notifyCreated, making sure it only calls notifyCreated for
>> workflows without a state in the workflow history.
This alone will not work.
Does it make sense to keep old workflow history records after copy and
paste? Or can we just remove the complete workflow_history attribute
before notifyCreated is called?
If the subscriber for IObjectCopiedEvent removes the workflow_history
everything seems to work fine.
Zope-CMF maillist - Zope-CMF@lists.zope.org
See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests