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:


Sorry for commenting so late now that you've done all the merging, but I only noticed this today... :/

-- -- Professional Zope documentation and training
Zope-Dev maillist  -
**  No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to