From 38e73da092f3bb3377edac983aea37aceed4ed3f Mon Sep 17 00:00:00 2001 From: Nicolas Martinelli Date: Fri, 29 Dec 2017 12:18:58 +0100 Subject: [IMP] web: support variable digits In v10, a `Float` field with `widget="monetary"` option uses the decimal precision of the field. In v11, however, it uses the decimal precision of the currency. However, in many cases `widget="monetary"` is used in the sole purpose of displaying the currency symbol. The precision of the field sould be kept. This commit introduces the support of the decimal precision of the field for this specific use case thanks to the `field_digits` option: ``` ``` If such an option is used, the field precision will prevail over the currency precision. Related to #21686 opw-800279 --- addons/web/static/src/js/fields/field_utils.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'addons/web/static/src/js/fields/field_utils.js') diff --git a/addons/web/static/src/js/fields/field_utils.js b/addons/web/static/src/js/fields/field_utils.js index 932ea997e6a..6a6ad5a7a98 100644 --- a/addons/web/static/src/js/fields/field_utils.js +++ b/addons/web/static/src/js/fields/field_utils.js @@ -286,8 +286,12 @@ function formatMonetary(value, field, options) { currency = session.get_currency(currency_id); } + var digits = (currency && currency.digits) || options.digits; + if (options.field_digits === true) { + digits = field.digits || digits; + } var formatted_value = formatFloat(value, field, { - digits: (currency && currency.digits) || options.digits, + digits: digits, }); if (!currency || options.noSymbol) { -- cgit v1.2.3