[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