[Zope-CMF] Re: Zope 3 events from workflow
Martin Aspeli
optilude at gmx.net
Wed Dec 27 11:22:21 EST 2006
Hi Tres,
> Looks farily good overall. I think one useful extension would be useful
> to provide access to the same information currently exposed via
> Products.DCWorkflow.Expression.StaTeChangeInfo (these are what the
> guard expressions use):
>
> - The workflow object itself.
>
> - The transition object itself
>
> - The history of the object
>
> - Any keywords passed to the transition-trigger ('doActionFor')
>
> Naming those attributes with the same names used in the expression
> context might make porting some scripts / guard expressions to event
> handlers simpler.
Right. I just passed the names in to keep things simple, but we could
just as easily pass in the tdef, old_sdef, new_sdef.
For the kwargs, we could pass those along from the function (def
_executeTransition(self, ob, tdef=None, kwargs=None)).
When you say history, do you mean former_status in that function
(former_status = self._getStatusOf(ob))? They would of course be easy to
move over.
> For full generality, we also need to allow the "before" handlers to veto
> the transition, e.g. by raising WorkflowException. Looking at the code,
> it doesn't appear that the definition or the tool make any effort to
> catch exceptions raised by transition scripts, so we should just emulate
> how it handles them.
Meaning, we don't need to do anything more?
Let me try to refactor as you say and post a new patch.
Martin
More information about the Zope-CMF
mailing list