[Checkins] SVN: grok/trunk/src/grok/ integrated form.DisplayForm to grok

Wolfgang Schnerring wosc at wosc.de
Thu Oct 19 08:35:17 EDT 2006


Log message for revision 70809:
  integrated form.DisplayForm to grok

Changed:
  U   grok/trunk/src/grok/__init__.py
  U   grok/trunk/src/grok/components.py
  U   grok/trunk/src/grok/ftests/form/form.py

-=-
Modified: grok/trunk/src/grok/__init__.py
===================================================================
--- grok/trunk/src/grok/__init__.py	2006-10-19 12:27:12 UTC (rev 70808)
+++ grok/trunk/src/grok/__init__.py	2006-10-19 12:35:17 UTC (rev 70809)
@@ -30,7 +30,7 @@
 
 from grok.components import Model, Adapter, MultiAdapter, View, XMLRPC
 from grok.components import PageTemplate, Utility, Container, Traverser
-from grok.components import EditForm
+from grok.components import EditForm, DisplayForm
 from grok.directive import context, name, template, templatedir
 from grok._grok import do_grok as grok  # Avoid name clash within _grok
 from grok._grok import SubscribeDecorator as subscribe

Modified: grok/trunk/src/grok/components.py
===================================================================
--- grok/trunk/src/grok/components.py	2006-10-19 12:27:12 UTC (rev 70808)
+++ grok/trunk/src/grok/components.py	2006-10-19 12:35:17 UTC (rev 70809)
@@ -192,16 +192,27 @@
         if traverser:
             return traverser(name)
 
-class EditForm(View, form.EditForm):
-    def __init__(self, context, request):
-        super(EditForm, self).__init__(context, request)
-
+class Form(View):
+    def _init(self):
         fields = schema_fields(self.context)
         self.form_fields = form.Fields(*fields)
             
         self.template = component.getAdapter(self, INamedTemplate,
                                              name='default')
+    def __call__(self):
+        self.update()
+        return self.render()
 
+class EditForm(Form, form.EditForm):
+    def __init__(self, context, request):
+        super(EditForm, self).__init__(context, request)
+        self._init()
+
+class DisplayForm(Form, form.DisplayForm):
+    def __init__(self, context, request):
+        super(DisplayForm, self).__init__(context, request)
+        self._init()
+
 def schema_fields(obj):
     fields = []
     fields_class = getattr(obj, 'fields', None)

Modified: grok/trunk/src/grok/ftests/form/form.py
===================================================================
--- grok/trunk/src/grok/ftests/form/form.py	2006-10-19 12:27:12 UTC (rev 70808)
+++ grok/trunk/src/grok/ftests/form/form.py	2006-10-19 12:35:17 UTC (rev 70809)
@@ -19,6 +19,15 @@
   ...Really big...
   ...
 
+grok.DisplayForm renders a display form:
+
+  >>> browser.open("http://localhost/manfred/@@display")
+  >>> print browser.contents
+  <!DOCTYPE ...
+  ...Manfred the Mammoth...
+  ...Really big...
+  ...
+
 """
 import grok
 from zope import schema
@@ -30,3 +39,6 @@
 
 class Edit(grok.EditForm):
     pass
+
+class Display(grok.DisplayForm):
+    pass



More information about the Checkins mailing list