Stefan H. Holek wrote:
Log message for revision 76597:
Collector #2307: ObjectCopiedEvent not dispatched to sublocations.
...
@@ -130,7 +131,15 @@
if OFS.interfaces.IObjectManager.providedBy(ob):
dispatchToSublocations(ob, event)
[EMAIL PROTECTED](OFS.interfaces.IItem, IObjectCopiedEvent)
+def dispatchObjectCopiedEvent(ob, event):
+ """Multi-subscriber for IItem + IObjectCopiedEvent.
+ """
+ # Dispatch to sublocations
+ if OFS.interfaces.IObjectManager.providedBy(ob):
+ dispatchToSublocations(ob, event)
Why are you subscribing to IItem if you really want to work only with
IObjectManagers? The above code could simply read (quoting to avoid
wrapping):
@zope.component.adapter(OFS.interfaces.IObjectManager, IObjectCopiedEvent)
def dispatchObjectCopiedEvent(obj, event):
dispatchToSublocations(obj, event)
That's not only more elegant, I reckon it's also a tad faster. To avoid
even more typing, you could get rid of all of that code and simply
register that "dispatchToSublocations" function directly for those two
objects:
<subscriber
for="OFS.interfaces.IObjectManager
zope.lifecycleevent.interfaces.IObjectCopiedEvent"
handler="zope.app.container.contained.dispatchToSublocations"
/>
Sorry for commenting so late now that you've done all the merging, but I
only noticed this today... :/
--
http://worldcookery.com -- Professional Zope documentation and training
_______________________________________________
Zope-Dev maillist - Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )