[Erp5-report] r19085 - /erp5/trunk/products/ERP5Form/Form.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Feb 5 21:39:49 CET 2008


Author: nicolas
Date: Tue Feb  5 21:39:48 2008
New Revision: 19085

URL: http://svn.erp5.org?rev=19085&view=rev
Log:
Get Values Recursively

Modified:
    erp5/trunk/products/ERP5Form/Form.py

Modified: erp5/trunk/products/ERP5Form/Form.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/Form.py?rev=19085&r1=19084&r2=19085&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/Form.py (original)
+++ erp5/trunk/products/ERP5Form/Form.py Tue Feb  5 21:39:48 2008
@@ -917,11 +917,15 @@
     def unProxifyField(self, field_dict=None, REQUEST=None):
         """
         Convert proxy fields to fields
-        Still Experimental, need to be tested
         """
-        def copy(_dict):
+        def copy(field, value_type):
+            mapping_dict = {'values' : 'get_recursive_orig_value',
+                            'tales'  : 'get_recursive_tales'}
             new_dict = {}
-            for key, value in _dict.items():
+            key_list = getattr(field.getRecursiveTemplateField(), value_type).keys()
+            for key in key_list:
+                method_id = mapping_dict[value_type]
+                value = getattr(field, method_id)(key)
                 if value=='':
                     continue
                 if isinstance(aq_base(value), (Method, TALESMethod)):
@@ -980,9 +984,9 @@
                                  fieldname=delegated_field.meta_type)
             field = getattr(self, field_id)
             # copy data
-            new_values = remove_same_value(copy(delegated_field.values),
+            new_values = remove_same_value(copy(old_proxy_field, 'values'),
                                            field.values)
-            new_tales = remove_same_value(copy(delegated_field.tales),
+            new_tales = remove_same_value(copy(old_proxy_field, 'tales'),
                                           field.tales)
 
             field.values.update(new_values)




More information about the Erp5-report mailing list