[z3-checkins] r20402 - z3/Five/branch/Five-1.2

efge at codespeak.net efge at codespeak.net
Tue Nov 29 17:18:20 CET 2005


Author: efge
Date: Tue Nov 29 17:18:20 2005
New Revision: 20402

Modified:
   z3/Five/branch/Five-1.2/CHANGES.txt
   z3/Five/branch/Five-1.2/event.py
   z3/Five/branch/Five-1.2/monkey.py
Log:
Added ``original`` parameter to ObjectCopiedEvent backported from
Zope 3.2.


Modified: z3/Five/branch/Five-1.2/CHANGES.txt
==============================================================================
--- z3/Five/branch/Five-1.2/CHANGES.txt	(original)
+++ z3/Five/branch/Five-1.2/CHANGES.txt	Tue Nov 29 17:18:20 2005
@@ -10,6 +10,9 @@
 Restructuring
 -------------
 
+* (b6) Added ``original`` parameter to ObjectCopiedEvent backported from
+  Zope 3.2
+
 * (b4) Cleaned up security test.
 
 * (b4) Made Five send a ContainerModifiedEvent when appropriate.

Modified: z3/Five/branch/Five-1.2/event.py
==============================================================================
--- z3/Five/branch/Five-1.2/event.py	(original)
+++ z3/Five/branch/Five-1.2/event.py	Tue Nov 29 17:18:20 2005
@@ -352,9 +352,10 @@
             id = self._get_id(orig_id)
             result.append({'id': orig_id, 'new_id': id})
 
+            orig_ob = ob
             ob = ob._getCopy(self)
             ob._setId(id)
-            notify(ObjectCopiedEvent(ob))
+            notify(ObjectCopiedEvent(ob, orig_ob))
 
             self._setObject(id, ob)
             ob = self._getOb(id)
@@ -472,9 +473,10 @@
             message=sys.exc_info()[1],
             action='manage_main')
 
+    orig_ob = ob
     ob = ob._getCopy(self)
     ob._setId(id)
-    notify(ObjectCopiedEvent(ob))
+    notify(ObjectCopiedEvent(ob, orig_ob))
 
     self._setObject(id, ob)
     ob = self._getOb(id)

Modified: z3/Five/branch/Five-1.2/monkey.py
==============================================================================
--- z3/Five/branch/Five-1.2/monkey.py	(original)
+++ z3/Five/branch/Five-1.2/monkey.py	Tue Nov 29 17:18:20 2005
@@ -74,12 +74,17 @@
     BaseRequest.close = close
 
 def zope3_monkey():
-    """Fix Zope 3 to have the proper ContainerModifiedEvent that has
-    been added for 3.2.
+    """Zope 3 monkeys to get some Zope 3.2 features.
+
+    - Added ContainerModifiedEvent.
+
+    - Added `original` parameter to ObjectCopiedEvent.
     """
+    import warnings
     from zope.event import notify
     from zope.interface import implements
     from zope.app.event.objectevent import ObjectModifiedEvent
+    from zope.app.event.objectevent import ObjectCopiedEvent
     from zope.app.event.interfaces import IObjectModifiedEvent
 
     class IContainerModifiedEvent(IObjectModifiedEvent):
@@ -97,8 +102,20 @@
         """Notify that the container was modified."""
         notify(ContainerModifiedEvent(object, *descriptions))
 
+    def ObjectCopiedEvent_init(self, object, original=None):
+        super(ObjectCopiedEvent, self).__init__(object)
+        self.original = original
+        # BBB goes away in 3.3
+        if original is None:
+            warnings.warn(
+                "%s with no original is deprecated and will no-longer "
+                "be supported starting in Zope 3.3."
+                % self.__class__.__name__,
+                DeprecationWarning, stacklevel=2)
+
     from zope.app.container import contained
     from zope.app.container import interfaces
     interfaces.IContainerModifiedEvent = IContainerModifiedEvent
     contained.ContainerModifiedEvent = ContainerModifiedEvent
     contained.notifyContainerModified = notifyContainerModified
+    ObjectCopiedEvent.__init__ = ObjectCopiedEvent_init


More information about the z3-checkins mailing list