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

Bernd Dorn bernd.dorn at fhv.at
Tue Apr 11 19:37:46 EDT 2006


Log message for revision 66873:
  hacking

Changed:
  U   zope3org/trunk/src/zorg/multiform/container/grid.pt
  U   zope3org/trunk/src/zorg/multiform/container/views.py
  U   zope3org/trunk/src/zorg/multiform/multiform.py
  U   zope3org/trunk/src/zorg/multiform/selection.py

-=-
Modified: zope3org/trunk/src/zorg/multiform/container/grid.pt
===================================================================
--- zope3org/trunk/src/zorg/multiform/container/grid.pt	2006-04-11 23:27:01 UTC (rev 66872)
+++ zope3org/trunk/src/zorg/multiform/container/grid.pt	2006-04-11 23:37:46 UTC (rev 66873)
@@ -180,6 +180,9 @@
 </div>
 
 </form>
+
+<div tal:content="view/request/form"/>
+
 <script type="text/javascript" metal:define-slot="trackChanges">
   zc_trackChanges(document.getElementById('zc.page.browser_form'));
 </script>

Modified: zope3org/trunk/src/zorg/multiform/container/views.py
===================================================================
--- zope3org/trunk/src/zorg/multiform/container/views.py	2006-04-11 23:27:01 UTC (rev 66872)
+++ zope3org/trunk/src/zorg/multiform/container/views.py	2006-04-11 23:37:46 UTC (rev 66873)
@@ -131,7 +131,7 @@
             self.status = (_("Updated on ${date_time}", mapping=m),)
         else:
             self.status = (_('No changes'),)
-        ISelection(self.context).selected=False    
+        ISelection(self.context).selected=False
         self.newInputMode = False
 
 

Modified: zope3org/trunk/src/zorg/multiform/multiform.py
===================================================================
--- zope3org/trunk/src/zorg/multiform/multiform.py	2006-04-11 23:27:01 UTC (rev 66872)
+++ zope3org/trunk/src/zorg/multiform/multiform.py	2006-04-11 23:37:46 UTC (rev 66873)
@@ -23,12 +23,17 @@
 def anySubFormInputMode(form,action):
     if not IMultiForm.providedBy(form):
         form = form.parentForm
-    return (True in form.subFormInputMode.values())
+    for f in form.subForms.values():
+        if f.inputMode:
+            return True
 
 def allSubFormsDisplayMode(form,action):
     if not IMultiForm.providedBy(form):
         form = form.parentForm
-    return not (True in form.subFormInputMode.values())
+    for f in form.subForms.values():
+        if f.inputMode:
+            return False
+    return True
 
 
 class ItemAction(form.Action):
@@ -151,21 +156,24 @@
         self.checkInputMode()
         self.updateSelection()
         super(MultiFormBase,self).update()
-        hasErrors = False
-        for form in list(self.getForms()):
+        preForms = list(self.getForms())
+        for form in preForms:
             form.update()
-        refresh = False
-        for form in list(self.getForms()):
+        postForms = list(self.getForms())
+        refresh = postForms != preForms
+        for form in postForms:
             if form.newInputMode is not None:
                 newInputMode = form.newInputMode
                 context = self.context[form.context.__name__]
                 name = context.__name__
-                self.setUpForm(name, context, newInputMode)
+                self.setUpForm(name, context, newInputMode,
+                               ignore_request=True)
                 self.subFormInputMode[name] = newInputMode
                 refresh = True
             if refresh:
                 self.refreshSubActionNames()
 
+        
     def setUpWidgets(self, *args, **kw):
         super(MultiFormBase,self).setUpWidgets(*args,**kw)
         self.setUpForms(*args, **kw)
@@ -195,13 +203,17 @@
         # modifies the keys of our mapping, e.g. rename, delete
         keys = list(self.context.keys())
         deleted = filter(lambda x: x not in keys,self.subForms.keys())
-        print "deleted----------",deleted
         for k in deleted:
             del(self.subForms[k])
+            try:
+                del(self.subFormInputMode[k])
+            except KeyError:
+                pass
         for name in self.context.keys():
             if not self.subForms.has_key(name):
                 self.setUpForm(name,self.context[name],
-                               self.itemFormFactory.inputMode)
+                               self.itemFormFactory.inputMode,
+                               ignore_request=True)
             yield self.subForms[name]
 
 

Modified: zope3org/trunk/src/zorg/multiform/selection.py
===================================================================
--- zope3org/trunk/src/zorg/multiform/selection.py	2006-04-11 23:27:01 UTC (rev 66872)
+++ zope3org/trunk/src/zorg/multiform/selection.py	2006-04-11 23:37:46 UTC (rev 66873)
@@ -43,13 +43,16 @@
     def _setSelected(self,v):
         key = '_mf_selection.' + removeSecurityProxy(
             self.context.__form__).prefix
-        removeSecurityProxy(self.context.__form__).request.form[key]=v
+        form = removeSecurityProxy(self.context.__form__)
+        form.request.form[key] = v
 
     def _getSelected(self):
         key = '_mf_selection.' + removeSecurityProxy(
             self.context.__form__).prefix
-        return removeSecurityProxy(
+        res =  removeSecurityProxy(
             self.context.__form__).request.form.get(key,False)
+        print "res--------",res
+        return res
 
     selected = property(_getSelected ,_setSelected)
         



More information about the Checkins mailing list