diff options
| author | Martin Trigaux <mat@odoo.com> | 2019-06-20 14:21:16 +0000 |
|---|---|---|
| committer | Martin Trigaux <mat@odoo.com> | 2019-07-03 11:16:24 +0000 |
| commit | 573ccf098f887cb4233ff75772b4da8e3e5a45a1 (patch) | |
| tree | 2abf22d0198f7da608d2db6d37a74ef2e4bd5df8 | |
| parent | e2bd3e328aa0a4e2a438a3b0e9f3fc3fa5601b62 (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.xml | 6 | ||||
| -rw-r--r-- | odoo/addons/test_new_api/models.py | 1 | ||||
| -rw-r--r-- | odoo/addons/test_new_api/tests/test_new_fields.py | 6 | ||||
| -rw-r--r-- | odoo/fields.py | 4 |
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) |
