[Checkins] SVN: zope.contentprovider/trunk/src/zope/contentprovider/ add request to beforeupdateevent

Bernd Dorn bernd.dorn at lovelysystems.com
Sat May 5 05:27:46 EDT 2007


Log message for revision 75494:
  add request to beforeupdateevent

Changed:
  U   zope.contentprovider/trunk/src/zope/contentprovider/README.txt
  U   zope.contentprovider/trunk/src/zope/contentprovider/interfaces.py
  U   zope.contentprovider/trunk/src/zope/contentprovider/tales.py

-=-
Modified: zope.contentprovider/trunk/src/zope/contentprovider/README.txt
===================================================================
--- zope.contentprovider/trunk/src/zope/contentprovider/README.txt	2007-05-05 08:53:36 UTC (rev 75493)
+++ zope.contentprovider/trunk/src/zope/contentprovider/README.txt	2007-05-05 09:27:45 UTC (rev 75494)
@@ -370,6 +370,13 @@
   >>> events
   [<zope.contentprovider.interfaces.BeforeUpdateEvent object at ...>]
 
+The event holds the provider and the request.
+
+  >>> events[0].request
+  <zope.publisher.browser.TestRequest instance URL=http://127.0.0.1>
+  >>> events[0].object
+  <MessageBox object at ...>
+  
 Failure to lookup a Content Provider
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 

Modified: zope.contentprovider/trunk/src/zope/contentprovider/interfaces.py
===================================================================
--- zope.contentprovider/trunk/src/zope/contentprovider/interfaces.py	2007-05-05 08:53:36 UTC (rev 75493)
+++ zope.contentprovider/trunk/src/zope/contentprovider/interfaces.py	2007-05-05 09:27:45 UTC (rev 75494)
@@ -39,13 +39,21 @@
 class IBeforeUpdateEvent(IObjectEvent):
 
     """A Contentprovider will be updated"""
-    
+
+    request = zope.interface.Attribute(
+        """The request in which the object is udpated, might also be
+        None""")
+
 class BeforeUpdateEvent(ObjectEvent):
 
-    """A Contentprovider willt be updated"""
+    """A Contentprovider will be updated"""
 
     zope.interface.implements(IBeforeUpdateEvent)
 
+    def __init__(self, provider, request=None):
+        super(BeforeUpdateEvent, self).__init__(provider)
+        self.request = request
+
 class IContentProvider(browser.IBrowserView):
     """A piece of content to be shown on a page.
 

Modified: zope.contentprovider/trunk/src/zope/contentprovider/tales.py
===================================================================
--- zope.contentprovider/trunk/src/zope/contentprovider/tales.py	2007-05-05 08:53:36 UTC (rev 75493)
+++ zope.contentprovider/trunk/src/zope/contentprovider/tales.py	2007-05-05 09:27:45 UTC (rev 75494)
@@ -73,7 +73,7 @@
         addTALNamespaceData(provider, econtext)
 
         # Stage 1: Do the state update.
-        zope.event.notify(interfaces.BeforeUpdateEvent(provider))
+        zope.event.notify(interfaces.BeforeUpdateEvent(provider, request))
         provider.update()
 
         # Stage 2: Render the HTML content.



More information about the Checkins mailing list