[Checkins] SVN: z3ext.layoutform/trunk/ added subform support

Nikolay Kim fafhrd at datacom.kz
Wed Dec 3 14:21:30 EST 2008


Log message for revision 93589:
  added subform support

Changed:
  U   z3ext.layoutform/trunk/CHANGES.txt
  U   z3ext.layoutform/trunk/src/z3ext/layoutform/__init__.py
  U   z3ext.layoutform/trunk/src/z3ext/layoutform/browser/configure.zcml
  U   z3ext.layoutform/trunk/src/z3ext/layoutform/browser/subform.pt
  U   z3ext.layoutform/trunk/src/z3ext/layoutform/configure.zcml
  U   z3ext.layoutform/trunk/src/z3ext/layoutform/interfaces.py
  A   z3ext.layoutform/trunk/src/z3ext/layoutform/subform.py

-=-
Modified: z3ext.layoutform/trunk/CHANGES.txt
===================================================================
--- z3ext.layoutform/trunk/CHANGES.txt	2008-12-03 19:20:36 UTC (rev 93588)
+++ z3ext.layoutform/trunk/CHANGES.txt	2008-12-03 19:21:30 UTC (rev 93589)
@@ -2,6 +2,9 @@
 CHANGES
 =======
 
+- Added subform support
+
+
 1.2.8 (2008-11-21)
 ------------------
 

Modified: z3ext.layoutform/trunk/src/z3ext/layoutform/__init__.py
===================================================================
--- z3ext.layoutform/trunk/src/z3ext/layoutform/__init__.py	2008-12-03 19:20:36 UTC (rev 93588)
+++ z3ext.layoutform/trunk/src/z3ext/layoutform/__init__.py	2008-12-03 19:21:30 UTC (rev 93589)
@@ -7,3 +7,4 @@
 from form import PageletDisplayForm
 from add import PageletAddForm
 from edit import PageletEditForm
+from subform import PageletEditSubForm

Modified: z3ext.layoutform/trunk/src/z3ext/layoutform/browser/configure.zcml
===================================================================
--- z3ext.layoutform/trunk/src/z3ext/layoutform/browser/configure.zcml	2008-12-03 19:20:36 UTC (rev 93588)
+++ z3ext.layoutform/trunk/src/z3ext/layoutform/browser/configure.zcml	2008-12-03 19:21:30 UTC (rev 93589)
@@ -55,7 +55,7 @@
 
   <z3ext:pagelet
      template="subform.pt"
-     for="z3c.form.interfaces.ISubForm"
+     for="..interfaces.IPageletEditSubForm"
      layer="..interfaces.ILayoutFormLayer"
      provides="..interfaces.IPageletFormView"
      permission="zope.Public" />

Modified: z3ext.layoutform/trunk/src/z3ext/layoutform/browser/subform.pt
===================================================================
--- z3ext.layoutform/trunk/src/z3ext/layoutform/browser/subform.pt	2008-12-03 19:20:36 UTC (rev 93588)
+++ z3ext.layoutform/trunk/src/z3ext/layoutform/browser/subform.pt	2008-12-03 19:21:30 UTC (rev 93589)
@@ -7,6 +7,4 @@
   <tal:block tal:repeat="widget context/widgets/values"
        tal:content="structure widget/@@pagelet/layoutform.widget" />
 </div>
-
-<tal:block tal:content="structure
-     context/@@pagelet/z3ext.layoutform.browser.interfaces.IFormButtons" />
+=========
\ No newline at end of file

Modified: z3ext.layoutform/trunk/src/z3ext/layoutform/configure.zcml
===================================================================
--- z3ext.layoutform/trunk/src/z3ext/layoutform/configure.zcml	2008-12-03 19:20:36 UTC (rev 93588)
+++ z3ext.layoutform/trunk/src/z3ext/layoutform/configure.zcml	2008-12-03 19:21:30 UTC (rev 93589)
@@ -10,6 +10,11 @@
      name="formError"
      factory=".error.FormErrorStatusMessage" />
 
+  <interface
+     name="form"
+     type="z3ext.layout.interfaces.IPageletType"
+     interface="z3ext.layoutform.interfaces.IPageletFormView" />
+
   <!-- browser views -->
   <include package=".browser" />
 

Modified: z3ext.layoutform/trunk/src/z3ext/layoutform/interfaces.py
===================================================================
--- z3ext.layoutform/trunk/src/z3ext/layoutform/interfaces.py	2008-12-03 19:20:36 UTC (rev 93588)
+++ z3ext.layoutform/trunk/src/z3ext/layoutform/interfaces.py	2008-12-03 19:21:30 UTC (rev 93589)
@@ -65,6 +65,10 @@
         """ as next url use newly created content url """
 
 
+class IPageletEditSubForm(IPageletForm):
+    """ Sub form mixin for pagelet implementation."""
+
+
 class IAddButton(interface.Interface):
     """ add button """
 

Added: z3ext.layoutform/trunk/src/z3ext/layoutform/subform.py
===================================================================
--- z3ext.layoutform/trunk/src/z3ext/layoutform/subform.py	                        (rev 0)
+++ z3ext.layoutform/trunk/src/z3ext/layoutform/subform.py	2008-12-03 19:21:30 UTC (rev 93589)
@@ -0,0 +1,49 @@
+##############################################################################
+#
+# Copyright (c) 2008 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+""" 
+
+$Id:  2007-12-12 12:27:02Z fafhrd $
+"""
+from zope import interface, event
+from zope.traversing.browser import absoluteURL
+from zope.lifecycleevent import ObjectModifiedEvent
+
+from z3c.form import form, subform, button
+from z3ext.statusmessage.interfaces import IStatusMessage
+
+from form import PageletForm
+from interfaces import _, IPageletEditSubForm, ISaveButton
+
+
+class PageletEditSubForm(subform.EditSubForm, PageletForm):
+    interface.implements(IPageletEditSubForm)
+
+    render = PageletForm.render
+    __call__ = PageletForm.__call__
+
+    @button.buttonAndHandler(
+        _(u'Save'), name='save', provides=ISaveButton)
+    def handleApply(self, action):
+        data, errors = self.extractData()
+        if errors:
+            IStatusMessage(self.request).add(
+                (self.formErrorsMessage,) + errors, 'formError')
+        else:
+            content = self.getContent()
+            changed = form.applyChanges(self, content, data)
+            if changed:
+                event.notify(ObjectModifiedEvent(content))
+                IStatusMessage(self.request).add(self.successMessage)
+            else:
+                IStatusMessage(self.request).add(self.noChangesMessage)



More information about the Checkins mailing list