Pete Taylor wrote:
hi all... question for any event subscriber gurus (or just anyone who knows
more than me, which probably won't take much ;) )

i have a set of actions that i would like to have trigger off of a
particular state in a workflow. in my unittest i can see that the workflow
fires the event, but my subscriber doesn't pick up on it. similarly, the
subscriber i have in zcml in the application proper does not respond when
the workflow transition event is fired.

the functionality works if i explicitly call my subscription method against
the event, but that only proves that the functionality of the code isn't
broken...

the relevant zcml portion is as follows:
<subscriber
for="qarelease.interfaces.IRelease
zope.app.workflow.stateful.interfaces.IAfterTransitionEvent"
factory=".release.notifyTransition"
/>

the unittest subscribes with ztapi as follows:
ztapi.subscribe((IRelease, IAfterTransitionEvent), None, notifyTransition)

As Jim mentioned, and as I discovered yesterday :), the ability to subscribe using a multi-adapter is not "stock" behavior of the basic event notification (which only sends one IEvent object), but actually behavior of the IObjectEvents, which have a special subscriber re-dispatching on both event.object and event, so that the multi-adapter subscribers can work.

What workflow framework are you using ? And what's qarelease.interfaces.IRelease ? Is it a transition or something else ?

That framework could be updated to do the same dance, if there's a clear "object" there. Or maybe some workflow event interfaces could be subclassed from IObjectEvent.

Florent

--
Florent Guillaume, Nuxeo (Paris, France)   CTO, Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   [EMAIL PROTECTED]
_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users

Reply via email to