[IMP] correctly bound _symbol_f and redifine self._symbol_set_char to keep the API
authorMartin Trigaux <mat@openerp.com>
Tue, 8 Oct 2013 10:47:37 +0000 (12:47 +0200)
committerMartin Trigaux <mat@openerp.com>
Tue, 8 Oct 2013 10:47:37 +0000 (12:47 +0200)
bzr revid: mat@openerp.com-20131008104737-eellli48re2pfmos

openerp/osv/fields.py

index 0dff5ec..d5c8470 100644 (file)
@@ -228,9 +228,10 @@ class char(_column):
 
     def __init__(self, string="unknown", size=None, **args):
         _column.__init__(self, string=string, size=size or None, **args)
-        self._symbol_f = _symbol_set_char
+        # self._symbol_set_char defined to keep the backward compatibility
+        self._symbol_f = self._symbol_set_char = lambda x: _symbol_set_char(self, x)
         # use lamda function to be able to get the field size
-        self._symbol_set = (self._symbol_c, lambda x: _symbol_set_char(self, x))
+        self._symbol_set = (self._symbol_c, self._symbol_f)
 
 
 class text(_column):
@@ -1089,9 +1090,8 @@ class function(_column):
 
         if type == 'char':
             self._symbol_c = char._symbol_c
-            self._symbol_f = char._symbol_f
-            self._symbol_set = (char._symbol_c, lambda x: _symbol_set_char(self, x))
-
+            self._symbol_f = lambda x: _symbol_set_char(self, x)
+            self._symbol_set = (self._symbol_c, self._symbol_f)
 
     def digits_change(self, cr):
         if self._type == 'float':