[Checkins] SVN: five.megrok.layout/trunk/src/five/megrok/layout/ Add Form support.

Sylvain Viollon sylvain at infrae.com
Thu Sep 17 12:13:55 EDT 2009


Log message for revision 104239:
  Add Form support.
  
  

Changed:
  U   five.megrok.layout/trunk/src/five/megrok/layout/__init__.py
  U   five.megrok.layout/trunk/src/five/megrok/layout/components.py

-=-
Modified: five.megrok.layout/trunk/src/five/megrok/layout/__init__.py
===================================================================
--- five.megrok.layout/trunk/src/five/megrok/layout/__init__.py	2009-09-17 16:01:11 UTC (rev 104238)
+++ five.megrok.layout/trunk/src/five/megrok/layout/__init__.py	2009-09-17 16:13:55 UTC (rev 104239)
@@ -14,4 +14,4 @@
 
 from megrok.layout import *
 
-from five.megrok.layout.components import Layout, Page
+from five.megrok.layout.components import Layout, Page, Form

Modified: five.megrok.layout/trunk/src/five/megrok/layout/components.py
===================================================================
--- five.megrok.layout/trunk/src/five/megrok/layout/components.py	2009-09-17 16:01:11 UTC (rev 104238)
+++ five.megrok.layout/trunk/src/five/megrok/layout/components.py	2009-09-17 16:13:55 UTC (rev 104239)
@@ -13,12 +13,19 @@
 ##############################################################################
 
 import megrok.layout
+from grokcore.formlib.components import default_form_template
+from five import grok
+from zope import component, interface
 
+from Products.Five.browser.decode import processInputs, setPageEncoding
+
 import Acquisition
 
 
 class Layout(megrok.layout.Layout, Acquisition.Explicit):
 
+    grok.baseclass()
+
     def __init__(self, *args):
         super(Layout, self).__init__(*args)
         if not (self.static is None):
@@ -34,6 +41,8 @@
 
 class Page(megrok.layout.Page, Acquisition.Explicit):
 
+    grok.baseclass()
+
     def __init__(self, *args):
         super(Page, self).__init__(*args)
         if not (self.static is None):
@@ -47,5 +56,21 @@
     getPhysicalPath = Acquisition.Acquired
 
 
+class Form(megrok.layout.Form, Acquisition.Explicit):
 
+    grok.baseclass()
 
+    def __init__(self, *args):
+        super(Form, self).__init__(*args)
+        self.__name__ = self.__view_name__
+        # super seems not to work correctly since this is needed again.
+        self.static = component.queryAdapter(
+            self.request, interface.Interface,
+            name = self.module_info.package_dotted_name)
+        if not (self.static is None):
+            self.static = self.static.__of__(self)
+
+    def update_form(self):
+        processInputs(self.request)
+        setPageEncoding(self.request)
+        super(Form, self).update_form()



More information about the checkins mailing list