summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Trigaux <mat@odoo.com>2019-06-20 14:21:16 +0000
committerMartin Trigaux <mat@odoo.com>2019-07-03 11:16:24 +0000
commit573ccf098f887cb4233ff75772b4da8e3e5a45a1 (patch)
tree2abf22d0198f7da608d2db6d37a74ef2e4bd5df8
parente2bd3e328aa0a4e2a438a3b0e9f3fc3fa5601b62 (diff)
[FIX] fields: implement _description_digits
Otherwise, fields_get returns the string, not the digits Add test
-rw-r--r--odoo/addons/test_new_api/demo_data.xml6
-rw-r--r--odoo/addons/test_new_api/models.py1
-rw-r--r--odoo/addons/test_new_api/tests/test_new_fields.py6
-rw-r--r--odoo/fields.py4
4 files changed, 16 insertions, 1 deletions
diff --git a/odoo/addons/test_new_api/demo_data.xml b/odoo/addons/test_new_api/demo_data.xml
index ff048467183..ec6a5c8bced 100644
--- a/odoo/addons/test_new_api/demo_data.xml
+++ b/odoo/addons/test_new_api/demo_data.xml
@@ -45,5 +45,11 @@
<record id="bool_4" model="domain.bool">
<field name="bool_undefined" eval="False"/>
</record>
+
+ <record id="decimal_new_api_number" model="decimal.precision">
+ <field name="name">New API Precision</field>
+ <field name="digits" eval="3"/>
+ </record>
+
</data>
</odoo>
diff --git a/odoo/addons/test_new_api/models.py b/odoo/addons/test_new_api/models.py
index cfa4d48cad5..8e13c37018f 100644
--- a/odoo/addons/test_new_api/models.py
+++ b/odoo/addons/test_new_api/models.py
@@ -284,6 +284,7 @@ class MixedModel(models.Model):
_description = 'Test New API Mixed'
number = fields.Float(digits=(10, 2), default=3.14)
+ number2 = fields.Float(digits='New API Precision')
date = fields.Date()
now = fields.Datetime(compute='_compute_now')
lang = fields.Selection(string='Language', selection='_get_lang')
diff --git a/odoo/addons/test_new_api/tests/test_new_fields.py b/odoo/addons/test_new_api/tests/test_new_fields.py
index 492255df83e..c0dd3efd536 100644
--- a/odoo/addons/test_new_api/tests/test_new_fields.py
+++ b/odoo/addons/test_new_api/tests/test_new_fields.py
@@ -443,6 +443,12 @@ class TestFields(common.TransactionCase):
record.number = 2.4999999999999996
self.assertEqual(record.number, 2.50)
+ def test_21_float_digits(self):
+ """ test field description """
+ precision = self.env.ref('test_new_api.decimal_new_api_number')
+ description = self.env['test_new_api.mixed'].fields_get()['number2']
+ self.assertEqual(description['digits'], (16, precision.digits))
+
def check_monetary(self, record, amount, currency, msg=None):
# determine the possible roundings of amount
if currency:
diff --git a/odoo/fields.py b/odoo/fields.py
index c95cb00eb85..db856b646e4 100644
--- a/odoo/fields.py
+++ b/odoo/fields.py
@@ -1290,7 +1290,9 @@ class Float(Field):
return self._digits
_related__digits = property(attrgetter('_digits'))
- _description_digits = property(attrgetter('_digits'))
+
+ def _description_digits(self, env):
+ return self.get_digits(env)
def convert_to_column(self, value, record, values=None, validate=True):
result = float(value or 0.0)