[Checkins] SVN: zope3org/trunk/src/zorg/multiform/ update

Bernd Dorn bernd.dorn at fhv.at
Mon Apr 10 09:14:49 EDT 2006


Log message for revision 66778:
  update

Changed:
  U   zope3org/trunk/src/zorg/multiform/gridform.py
  U   zope3org/trunk/src/zorg/multiform/gridform.txt
  U   zope3org/trunk/src/zorg/multiform/multiform.py

-=-
Modified: zope3org/trunk/src/zorg/multiform/gridform.py
===================================================================
--- zope3org/trunk/src/zorg/multiform/gridform.py	2006-04-10 12:24:30 UTC (rev 66777)
+++ zope3org/trunk/src/zorg/multiform/gridform.py	2006-04-10 13:14:48 UTC (rev 66778)
@@ -30,7 +30,7 @@
         self.request.form[self.key]=v
 
     def _getSelected(self):
-        self.request.form.get(key,False)
+        self.request.form.get(self.key,False)
 
     selected = property(_getSelected,_setSelected)
         

Modified: zope3org/trunk/src/zorg/multiform/gridform.txt
===================================================================
--- zope3org/trunk/src/zorg/multiform/gridform.txt	2006-04-10 12:24:30 UTC (rev 66777)
+++ zope3org/trunk/src/zorg/multiform/gridform.txt	2006-04-10 13:14:48 UTC (rev 66778)
@@ -45,7 +45,7 @@
     ...     def __init__(self,context,request,parentForm):
     ...         super(OrderForm,self).__init__(context,request,parentForm)
     ...         self.form_fields = form.Fields(ISelection,IOrder,
-    ...         omit_readonly=False)
+    ...         omit_readonly=False,render_context=True)
     ...         
     ...     def template(self):
     ...         return '\n<div>%s</div>\n' % '</div>\n<div>'.join([w() for w in
@@ -61,10 +61,10 @@
     ...     @multiform.parentAction('Edit',
     ...         condition=multiform.isParentFormDisplayMode)
     ...     def handle_edit_action(self, action, data):
-    ...         self.newInputMode=True
+    ...         self.inputMode=True
+    ...         self.parentForm.newInputMode=True
 
 
-
     >>> class OrdersForm(gridform.GridFormBase):
     ...     itemFormFactory=OrderForm
     ...     def template(self):
@@ -78,9 +78,43 @@
     ...     def handle_cancel_action(self, action, data):
     ...         self.newInputMode=False
 
+Due to the reason that the ``inputMode`` attribute is ``False`` we now
+get DisplayWidgets for all fields, except the ``selected`` field
+which's name is defined in the ``forceInput`` attribute of the class,
+because we always want checkboxes to select some items.
+
     >>> request = TestRequest()
     >>> gf = OrdersForm(orderMapping,request)
     >>> print gf()
-    <div>...
+    <div>
+    <div><input ... name="form.0.selected" type="checkbox" ...  /></div>
+    <div>0</div>
+    <div>n0</div>
     </div>
-    
+    <div>
+    <div><input ... name="form.1.selected" type="checkbox" ...  /></div>
+    <div>1</div>
+    <div>n1</div>
+    </div>
+
+Now we are going to select some items. And the checkbox of the ``selected``
+
+    >>> request = TestRequest()
+    >>> request.form['form.1.selected']=u'on'
+    >>> gf = OrdersForm(orderMapping,request)
+    >>> print gf()
+    <div>
+    ...
+    <div><input ... checked="checked" ... name="form.1.selected" ...</div>
+    <div>1</div>
+    <div>n1</div>
+    </div>
+
+By using the Edit action we can now switch all selected item forms to
+input mode. 
+
+    >>> request.form['form.actions.edit']=u''
+    >>> request.form['form.0.selected.used']=u''
+    >>> gf = OrdersForm(orderMapping,request)
+    >>> print gf()
+

Modified: zope3org/trunk/src/zorg/multiform/multiform.py
===================================================================
--- zope3org/trunk/src/zorg/multiform/multiform.py	2006-04-10 12:24:30 UTC (rev 66777)
+++ zope3org/trunk/src/zorg/multiform/multiform.py	2006-04-10 13:14:48 UTC (rev 66778)
@@ -118,11 +118,11 @@
         self.setUpForms(*args, **kw)
 
     def setUpForms(self, *args, **kw):
-        
         for name,item in self.context.items(): 
             prefix = (self.prefix and self.prefix+'.' or '') + name
             subForm = self.itemFormFactory(item,self.request,self)
-            if self.inputMode is not None and not self.inputMode:
+            if self.inputMode is not None and not self.inputMode \
+                   and subForm.inputMode is not None and not subForm.inputMode:
                 forceInput = self.itemFormFactory.forceInput
                 for field in subForm.form_fields:
                     if field.__name__ not in forceInput:



More information about the Checkins mailing list