[Checkins] SVN: z3c.formui/trunk/ Don't render add forms when redirecting.

Dan Korostelev nadako at gmail.com
Thu Aug 20 07:38:10 EDT 2009


Log message for revision 103001:
  Don't render add forms when redirecting.
  

Changed:
  U   z3c.formui/trunk/CHANGES.txt
  U   z3c.formui/trunk/src/z3c/formui/README.txt
  U   z3c.formui/trunk/src/z3c/formui/layout.py

-=-
Modified: z3c.formui/trunk/CHANGES.txt
===================================================================
--- z3c.formui/trunk/CHANGES.txt	2009-08-20 11:30:35 UTC (rev 103000)
+++ z3c.formui/trunk/CHANGES.txt	2009-08-20 11:38:09 UTC (rev 103001)
@@ -5,8 +5,10 @@
 2.1.0 (unreleased)
 ------------------
 
-- Don't show required info hint if there's no required fields.
+- Feature: Don't show required info hint if there's no required fields.
 
+- Bug: Don't render add forms when redirecting as well.
+
 2.0.0 (2009-06-14)
 ------------------
 

Modified: z3c.formui/trunk/src/z3c/formui/README.txt
===================================================================
--- z3c.formui/trunk/src/z3c/formui/README.txt	2009-08-20 11:30:35 UTC (rev 103000)
+++ z3c.formui/trunk/src/z3c/formui/README.txt	2009-08-20 11:38:09 UTC (rev 103001)
@@ -867,6 +867,16 @@
  >>> '<div class="viewspace">' in redirectView.render()
  True
 
+The same thing should work for AddForms:
+
+ >>> class RedirectingAddView(PersonAddForm):
+ ...     def update(self):
+ ...         super(RedirectingAddView, self).update()
+ ...         self.request.response.redirect('http://www.google.com/')
+ >>> redirectView = RedirectingAddView(person, divRequest)
+ >>> redirectView() == ''
+ True
+
 No required fields
 ------------------
 

Modified: z3c.formui/trunk/src/z3c/formui/layout.py
===================================================================
--- z3c.formui/trunk/src/z3c/formui/layout.py	2009-08-20 11:30:35 UTC (rev 103000)
+++ z3c.formui/trunk/src/z3c/formui/layout.py	2009-08-20 11:38:09 UTC (rev 103001)
@@ -58,6 +58,10 @@
             self.request.response.redirect(self.nextURL())
             return ''
 
+        if self.request.response.getStatus() in REDIRECT_STATUS_CODES:
+            # don't bother rendering when redirecting
+            return ''
+
         if self.layout is None:
             layout = zope.component.queryMultiAdapter(
                 (self, self.request, self.context),



More information about the Checkins mailing list