[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