[Checkins] SVN: megrok.z3cform/branches/megrok.z3cfrom-layout/s Start modifications for z3c.form 2.0 and megrok.layout
Christian Klinger
cklinger at novareto.de
Mon Jun 15 05:32:31 EDT 2009
Log message for revision 100959:
Start modifications for z3c.form 2.0 and megrok.layout
Changed:
U megrok.z3cform/branches/megrok.z3cfrom-layout/setup.py
U megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/__init__.py
U megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/components.py
U megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.zcml
A megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/skin.py
-=-
Modified: megrok.z3cform/branches/megrok.z3cfrom-layout/setup.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/setup.py 2009-06-15 09:32:06 UTC (rev 100958)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/setup.py 2009-06-15 09:32:31 UTC (rev 100959)
@@ -9,6 +9,8 @@
'grokcore.view >= 1.1',
'grokcore.formlib',
'z3c.form',
+ 'z3c.formui',
+ 'megrok.layout',
]
# The grok dependency is not added explicitly, so we can factor out a
Modified: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/__init__.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/__init__.py 2009-06-15 09:32:06 UTC (rev 100958)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/__init__.py 2009-06-15 09:32:31 UTC (rev 100959)
@@ -1,2 +1,4 @@
-
+#
from components import Form, AddForm, EditForm, DisplayForm
+from components import PageForm, PageAddForm, PageEditForm, PageDisplayForm
+from skin import FormLayer
Modified: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/components.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/components.py 2009-06-15 09:32:06 UTC (rev 100958)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/components.py 2009-06-15 09:32:31 UTC (rev 100959)
@@ -14,6 +14,7 @@
from z3c.form import form, field
from z3c.form.interfaces import IFormLayer
+import megrok.layout
class DefaultFields(field.Fields):
"""Marker for default fields.
@@ -27,6 +28,10 @@
interface.implements(IGrokForm)
martian.baseclass()
+ template = None
+ layout = None
+
+
fields = DefaultFields()
def __init__(self, *args):
@@ -82,6 +87,30 @@
return self.render()
+class PageGrokForm(GrokForm):
+
+ def _render_template(self):
+ assert not (self.template is None)
+ if IGrokTemplate.providedBy(self.template):
+ return super(GrokForm, self)._render_template()
+ return self.template(self)
+
+
+ def __call__(self):
+ mapply(self.update, (), self.request)
+ if self.request.response.getStatus() in (302, 303):
+ # A redirect was triggered somewhere in update(). Don't
+ # continue rendering the template or doing anything else.
+ return
+ self.updateForm()
+ if self.layout is None:
+ layout = component.getMultiAdapter(
+ (self.context, self.request), megrok.layout.ILayout)
+ return layout(self)
+ return self.layout()
+
+
+
class Form(GrokForm, form.Form, grokcore.view.View):
"""Normal z3c form.
"""
@@ -109,3 +138,30 @@
martian.baseclass()
+class PageForm(PageGrokForm, form.Form, megrok.layout.Page):
+ """Normal z3c form with megrok.layout support.
+ """
+
+ martian.baseclass()
+
+
+class PageAddForm(PageGrokForm, form.AddForm, megrok.layout.Page):
+ """z3c add form with megrok.layout support.
+ """
+
+ martian.baseclass()
+
+
+class PageEditForm(PageGrokForm, form.EditForm, megrok.layout.Page):
+ """z3c edit form with megrok.layout support.
+ """
+
+ martian.baseclass()
+
+
+class PageDisplayForm(PageGrokForm, form.DisplayForm, megrok.layout.Page):
+ """z3c display form with megrok.layout support.
+ """
+
+ martian.baseclass()
+
Modified: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.zcml
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.zcml 2009-06-15 09:32:06 UTC (rev 100958)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/meta.zcml 2009-06-15 09:32:31 UTC (rev 100959)
@@ -5,6 +5,14 @@
<include package="z3c.form" file="meta.zcml" />
<include package="grokcore.view" file="meta-minimal.zcml" />
+ <include package="zope.viewlet" file="meta.zcml" />
+ <include package="z3c.template" file="meta.zcml" />
+ <include package="z3c.macro"/>
+ <include package="z3c.macro" file="meta.zcml" />
+ <include package="z3c.formui"/>
+ <include package="megrok.layout" file="meta.zcml" />
+
+
<grok:grok package=".meta" />
</configure>
Added: megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/skin.py
===================================================================
--- megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/skin.py (rev 0)
+++ megrok.z3cform/branches/megrok.z3cfrom-layout/src/megrok/z3cform/skin.py 2009-06-15 09:32:31 UTC (rev 100959)
@@ -0,0 +1,7 @@
+import grok
+import z3c.formui.interfaces
+
+from z3c.form.interfaces import IFormLayer
+
+class FormLayer(grok.IDefaultBrowserLayer, IFormLayer, z3c.formui.interfaces.IDivFormLayer):
+ """ A layer for a z3c.forms"""
More information about the Checkins
mailing list