[Erp5-report] r17670 - in /erp5/trunk/products/ERP5Form: ProxyField.py tests/testFields.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Nov 19 11:02:10 CET 2007


Author: jerome
Date: Mon Nov 19 11:02:09 2007
New Revision: 17670

URL: http://svn.erp5.org?rev=17670&view=rev
Log:
Add API on ProxyField to edit surcharged values, similar to manage_edit_xmlrpc

Modified:
    erp5/trunk/products/ERP5Form/ProxyField.py
    erp5/trunk/products/ERP5Form/tests/testFields.py

Modified: erp5/trunk/products/ERP5Form/ProxyField.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/ProxyField.py?rev=17670&r1=17669&r2=17670&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/ProxyField.py (original)
+++ erp5/trunk/products/ERP5Form/ProxyField.py Mon Nov 19 11:02:09 2007
@@ -218,6 +218,21 @@
       message="Content changed."
       return self.manage_main(self, REQUEST,
                               manage_tabs_message=message)
+
+  def manage_edit_surcharged_xmlrpc(self, mapping):
+    """Edit surcharged properties
+    This method is similar to manage_edit_xmlrpc, and it marks the properties
+    as not delegated.
+    """
+    self._surcharged_edit(mapping, mapping.keys())
+
+  def manage_tales_surcharged_xmlrpc(self, mapping):
+    """Edit surcharged TALES
+    This method is similar to manage_tales_xmlrpc, and it marks the TALES
+    properties as not delegated.
+    """
+    self._surcharged_tales(mapping, mapping.keys())
+
 
   def _surcharged_edit(self, result, surcharge_list):
     # first check for any changes  

Modified: erp5/trunk/products/ERP5Form/tests/testFields.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/tests/testFields.py?rev=17670&r1=17669&r2=17670&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/tests/testFields.py (original)
+++ erp5/trunk/products/ERP5Form/tests/testFields.py Mon Nov 19 11:02:09 2007
@@ -270,6 +270,25 @@
     # and validate
     self.container.Base_view.validate_all_to_request(dict())
     
+  def test_manage_edit_surcharged_xmlrpc(self):
+    # manage_edit_surcharged_xmlrpc is a method to edit proxyfields
+    # programmatically
+    original_field = self.addField(self.container.Base_viewProxyFieldLibrary,
+                                   'my_string', 'String', 'StringField')
+    proxy_field = self.addField(self.container.Base_view,
+                                'my_String', '', 'ProxyField')
+    proxy_field.manage_edit_xmlrpc(dict(form_id='Base_viewProxyFieldLibrary',
+                                        field_id='my_date',))
+
+    proxy_field.manage_edit_surcharged_xmlrpc(dict(title='Title'))
+    self.assertFalse(proxy_field.is_delegated('title'))
+    self.assertEquals('Title', proxy_field.get_value('title'))
+
+    # beware that all values that are not passed in the mapping will be
+    # delegated again, regardless of the old state.
+    proxy_field.manage_edit_surcharged_xmlrpc(dict())
+    self.assertTrue(proxy_field.is_delegated('title'))
+
 
 class TestFieldValueCache(unittest.TestCase):
   """Tests field value caching system




More information about the Erp5-report mailing list