configurable floats
bzr revid: fp@tinyerp.com-20100306205154-beaovrdjiykvl823
This commit is contained in:
+10
-5
@@ -630,11 +630,9 @@ class function(_column):
|
||||
if 'relation' in args:
|
||||
self._obj = args['relation']
|
||||
|
||||
if 'digits' in args:
|
||||
self.digits = args['digits']
|
||||
else:
|
||||
self.digits = (16,2)
|
||||
|
||||
self.digits = args.get('digits', (16,2))
|
||||
self.digits_compute = args.get('digits_compute', None)
|
||||
|
||||
self._fnct_inv_arg = fnct_inv_arg
|
||||
if not fnct_inv:
|
||||
self.readonly = 1
|
||||
@@ -656,6 +654,13 @@ class function(_column):
|
||||
self._symbol_f = float._symbol_f
|
||||
self._symbol_set = float._symbol_set
|
||||
|
||||
def digits_change(self, cr):
|
||||
if self.digits_compute:
|
||||
t = self.digits_compute(cr)
|
||||
self._symbol_set=('%s', lambda x: ('%.'+str(t[1])+'f') % (__builtin__.float(x or 0.0),))
|
||||
self.digits = t
|
||||
|
||||
|
||||
def search(self, cr, uid, obj, name, args, context=None):
|
||||
if not self._fnct_search:
|
||||
#CHECKME: should raise an exception
|
||||
|
||||
+1
-1
@@ -2296,7 +2296,7 @@ class orm(orm_template):
|
||||
self._columns = self._columns.copy()
|
||||
for store_field in self._columns:
|
||||
f = self._columns[store_field]
|
||||
if isinstance(f, fields.float):
|
||||
if hasattr(f, 'digits_change'):
|
||||
f.digits_change(cr)
|
||||
if not isinstance(f, fields.function):
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user