From fee60159640206558e98d5103c8a883412419f5a Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Wed, 23 Nov 2016 17:51:42 +0100 Subject: [PATCH] [FIX] website_sale: format amount according to currency client side This commit closes #1103, closes #11553 --- addons/web/static/src/js/framework/translation.js | 4 +--- addons/website_sale/static/src/js/website_sale.js | 13 ++++++++++--- addons/website_sale/views/templates.xml | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/addons/web/static/src/js/framework/translation.js b/addons/web/static/src/js/framework/translation.js index 22eb1ae86b9..215440cc63d 100644 --- a/addons/web/static/src/js/framework/translation.js +++ b/addons/web/static/src/js/framework/translation.js @@ -29,9 +29,7 @@ var TranslationDataBase = Class.extend(/** @lends instance.TranslationDataBase# }); if (translation_bundle.lang_parameters) { this.parameters = translation_bundle.lang_parameters; - if (typeof(py) !== "undefined") { - this.parameters.grouping = py.eval(this.parameters.grouping); - } + this.parameters.grouping = JSON.parse(this.parameters.grouping); } }, add_module_translation: function(mod) { diff --git a/addons/website_sale/static/src/js/website_sale.js b/addons/website_sale/static/src/js/website_sale.js index cc6a57e2796..aaca350d82f 100644 --- a/addons/website_sale/static/src/js/website_sale.js +++ b/addons/website_sale/static/src/js/website_sale.js @@ -53,6 +53,7 @@ odoo.define('website_sale.website_sale', function (require) { var ajax = require('web.ajax'); var core = require('web.core'); +var utils = require('web.utils'); var _t = core._t; var base = require('web_editor.base'); @@ -250,9 +251,15 @@ $('.oe_website_sale').each(function () { }); function price_to_str(price) { - price = Math.round(price * 100) / 100; - var dec = Math.round((price % 1) * 100); - return price + (dec ? '' : '.0') + (dec%10 ? '' : '0'); + var l10n = _t.database.parameters; + var precision = 2; + + if ($(".decimal_precision").length) { + precision = parseInt($(".decimal_precision").first().data('precision')); + } + var formatted = _.str.sprintf('%.' + precision + 'f', price).split('.'); + formatted[0] = utils.insert_thousand_seps(formatted[0]); + return formatted.join(l10n.decimal_point); } $(oe_website_sale).on('change', 'input.js_product_change', function () { diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml index 7dffa42872b..9c5d743981b 100644 --- a/addons/website_sale/views/templates.xml +++ b/addons/website_sale/views/templates.xml @@ -434,7 +434,7 @@ -

+