[Erp5-report] r29646 - in /erp5/trunk/products/ERP5Type: Accessor/ tests/

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Oct 14 14:24:22 CEST 2009


Author: jm
Date: Wed Oct 14 14:24:19 2009
New Revision: 29646

URL: http://svn.erp5.org?rev=29646&view=rev
Log:
List setter without 'List' suffix should not split strings

Before, setFoo was equal to setFooList and
  setFoo('ab cd') equivalent to setFooList(('ab', 'cd'))

With this commit, setFoo('ab cd') == setFooList(('ab cd',))

This fixes changing permission on RoleInformation_view form.

Modified:
    erp5/trunk/products/ERP5Type/Accessor/List.py
    erp5/trunk/products/ERP5Type/tests/testERP5Type.py

Modified: erp5/trunk/products/ERP5Type/Accessor/List.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/List.py?rev=29646&r1=29645&r2=29646&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/List.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Accessor/List.py [utf8] Wed Oct 14 14:24:19 2009
@@ -99,7 +99,19 @@
           value = map(self._item_cast, value)
         setattr(instance, self._storage_id, tuple(value))
 
-Setter = ListSetter
+class Setter(DefaultSetter):
+
+    def __call__(self, instance, *args, **kw):
+      value = args[0]
+      # Modify the property
+      if value in self._null:
+        setattr(instance, self._storage_id, ())
+      elif self._is_tales_type:
+        setattr(instance, self._storage_id, str(value))
+      else:
+        if self._item_cast is not identity:
+          value = self._item_cast(value)
+        setattr(instance, self._storage_id, (value,))
 
 class SetSetter(Base.Setter):
     """

Modified: erp5/trunk/products/ERP5Type/tests/testERP5Type.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testERP5Type.py?rev=29646&r1=29645&r2=29646&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testERP5Type.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/testERP5Type.py [utf8] Wed Oct 14 14:24:19 2009
@@ -799,8 +799,8 @@
       person = module.newContent(portal_type='Person')
 
       # Do the same tests as in test_11_valueAccessor 
-      person.setSubject('beta')
-      self.assertEquals(person.getSubject(), 'beta')
+      person.setSubject('beta gamma')
+      self.assertEquals(person.getSubject(), 'beta gamma')
       person.setSubjectList(['alpha', 'alpha'])
       self.assertEquals(person.getSubjectList(), ['alpha', 'alpha'])
       self.assertEquals(person.getSubjectSet(), ['alpha'])




More information about the Erp5-report mailing list