[Checkins] SVN: plone.z3cform/trunk/ Merged plone.z3cform/branches/nathan-sub-form-factory-and-css 92201:92253

Nathan Van Gheem vangheem at gmail.com
Wed Oct 15 14:21:27 EDT 2008


Log message for revision 92256:
  Merged plone.z3cform/branches/nathan-sub-form-factory-and-css 92201:92253

Changed:
  U   plone.z3cform/trunk/docs/HISTORY.txt
  U   plone.z3cform/trunk/plone/z3cform/crud/README.txt
  U   plone.z3cform/trunk/plone/z3cform/crud/crud-table.pt
  U   plone.z3cform/trunk/plone/z3cform/crud/crud.py

-=-
Modified: plone.z3cform/trunk/docs/HISTORY.txt
===================================================================
--- plone.z3cform/trunk/docs/HISTORY.txt	2008-10-15 18:20:10 UTC (rev 92255)
+++ plone.z3cform/trunk/docs/HISTORY.txt	2008-10-15 18:21:26 UTC (rev 92256)
@@ -3,7 +3,12 @@
 
 0.5.3 - unreleased
 ------------------
+* Added support for an editsubform_factory for an EditForm so you can
+  override the default behavior for a sub form now.
 
+* Changed css in crud-table.pt for a table to "listing" so that tables
+  now look like plone tables.
+
 * Copy translation files to an english folder, so if your browser
   negociate to ``en,nl``, you will get english translations instead of
   dutch ones (like expected).

Modified: plone.z3cform/trunk/plone/z3cform/crud/README.txt
===================================================================
--- plone.z3cform/trunk/plone/z3cform/crud/README.txt	2008-10-15 18:20:10 UTC (rev 92255)
+++ plone.z3cform/trunk/plone/z3cform/crud/README.txt	2008-10-15 18:21:26 UTC (rev 92256)
@@ -423,6 +423,41 @@
   >>> 'Thomas' in storage
   True
 
+Customizing sub forms
+---------------------
+
+The EditForm class allows you to specify an editsubform_factory-a classs 
+inherits from EditSubForm.  This allows you to say, override the crud-row.pt
+page template and customize the look of the fields.
+
+  >>> import zope.schema
+  >>> class MyCustomEditSubForm(crud.EditSubForm):
+  ...
+  ...     def _select_field(self):
+  ...         """I want to customize the field that it comes with..."""
+  ...         select_field = field.Field(
+  ...         zope.schema.TextLine(__name__='select',
+  ...                              required=False,
+  ...                              title=u'select'))
+  ...         return select_field
+
+  >>> class MyCustomEditForm(MyEditForm):
+  ...     editsubform_factory = MyCustomEditSubForm
+
+  >>> class MyCustomFormWithCustomSubForm(MyCustomForm):
+  ...     editform_factory = MyCustomEditForm
+
+  >>> request = TestRequest()
+  >>> html = MyCustomFormWithCustomSubForm(None, TestRequest())()
+
+Still uses same form as before
+  >>> "Delete" in html, "Apply changes" in html, "Capitalize" in html
+  (False, False, True)
+
+Just changes the widget used for selecting...
+  >>> 'type="checkbox"' in html
+  False
+
 Using batching
 --------------
 

Modified: plone.z3cform/trunk/plone/z3cform/crud/crud-table.pt
===================================================================
--- plone.z3cform/trunk/plone/z3cform/crud/crud-table.pt	2008-10-15 18:20:10 UTC (rev 92255)
+++ plone.z3cform/trunk/plone/z3cform/crud/crud-table.pt	2008-10-15 18:21:26 UTC (rev 92256)
@@ -1,4 +1,4 @@
-<html xmlns="http://www.w3.org/1999/xhtml"
+ <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:metal="http://xml.zope.org/namespaces/metal"
       xmlns:tal="http://xml.zope.org/namespaces/tal"
       xmlns:i18n="http://xml.zope.org/namespaces/i18n"
@@ -25,7 +25,7 @@
                            value python:batch.number-1"
            />
 
-    <table class="crud-table" tal:define="rows view/subforms">
+    <table class="listing" tal:define="rows view/subforms">
         <thead tal:define="row1 python:len(rows) and rows[0] or None"
                tal:condition="python:row1 is not None">
           <tr>

Modified: plone.z3cform/trunk/plone/z3cform/crud/crud.py
===================================================================
--- plone.z3cform/trunk/plone/z3cform/crud/crud.py	2008-10-15 18:20:10 UTC (rev 92255)
+++ plone.z3cform/trunk/plone/z3cform/crud/crud.py	2008-10-15 18:21:26 UTC (rev 92256)
@@ -218,6 +218,9 @@
 class EditForm(form.Form):
     label = _(u"Edit")
     template = viewpagetemplatefile.ViewPageTemplateFile('crud-table.pt')
+    
+    #exposes the edit sub form for your own derivatives
+    editsubform_factory = EditSubForm
 
     @property
     def prefix(self):
@@ -231,7 +234,7 @@
     def _update_subforms(self):
         self.subforms = []
         for id, item in self.batch:
-            subform = EditSubForm(self, self.request)
+            subform = self.editsubform_factory(self, self.request)
             subform.content = item
             subform.content_id = id
             subform.update()



More information about the Checkins mailing list