[Zope3-checkins] CVS: Zope3/src/zope/app/browser/form - editview.py:1.27

Jim Fulton jim@zope.com
Wed, 2 Jul 2003 18:11:11 -0400


Update of /cvs-repository/Zope3/src/zope/app/browser/form
In directory cvs.zope.org:/tmp/cvs-serv32698/src/zope/app/browser/form

Modified Files:
	editview.py 
Log Message:
Added an editview hook.  When an edit view has made changes to an
object, it will call it's "called" method. This method can be
overridden in an editview class to perform processing based on updated
data.


=== Zope3/src/zope/app/browser/form/editview.py 1.26 => 1.27 ===
--- Zope3/src/zope/app/browser/form/editview.py:1.26	Thu Jun  5 16:13:07 2003
+++ Zope3/src/zope/app/browser/form/editview.py	Wed Jul  2 18:10:37 2003
@@ -115,6 +115,11 @@
             except ValidationError, v:
                 errors.append(v)
 
+        if not unchanged:
+            # XXX need better error handling here. We should catch
+            # and display errors for which there are views.
+            self.changed()
+
         if errors:
             raise WidgetsError(*errors)
 
@@ -125,6 +130,11 @@
 
         return unchanged
 
+    def changed(self):
+        # This method is overridden to execute logic *after* changes
+        # have been made.
+        pass
+
     def update(self):
         if self.update_status is not None:
             # We've been called before. Just return the status we previously
@@ -148,7 +158,9 @@
             else:
                 setUpEditWidgets(self, self.schema, force=1,
                                  names=self.fieldNames)
+
                 if not unchanged:
+                    
                     status = "Updated %s" % datetime.utcnow()
 
         self.update_status = status