diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 79900a9ec43..5473e2ababe 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -1186,14 +1186,8 @@ openerp.web.ListView.Groups = openerp.web.Class.extend( /** @lends openerp.web.L // do not do anything } else if (column.id in group.aggregates) { var value = group.aggregates[column.id]; - var format; - if (column.type === 'integer') { - format = "%.0f"; - } else if (column.type === 'float') { - format = "%.2f"; - } $('') - .text(_.str.sprintf(format, value)) + .text(openerp.web.format_value(value, column)) .appendTo($row); } else { $row.append(''); diff --git a/addons/web/static/test/formats.js b/addons/web/static/test/formats.js index 9a8f39bfa90..69557e98d5e 100644 --- a/addons/web/static/test/formats.js +++ b/addons/web/static/test/formats.js @@ -165,4 +165,23 @@ $(document).ready(function () { equal(openerp.web.format_value(106500, {type: 'integer'}), '106,50,0'); }); + test('format_float', function () { + openerp.web._t.database.parameters.grouping = [3, 3, 3, 3]; + equal(openerp.web.format_value(1000000, {type: 'float'}), + '1,000,000.00'); + openerp.web._t.database.parameters.grouping = [3, 2, -1]; + equal(openerp.web.format_value(106500, {type: 'float'}), + '1,06,500.00'); + openerp.web._t.database.parameters.grouping = [1, 2, -1]; + equal(openerp.web.format_value(106500, {type: 'float'}), + '106,50,0.00'); + + _.extend(openerp.web._t.database.parameters, { + grouping: [3, 0], + decimal_point: ',', + thousands_sep: '.' + }); + equal(openerp.web.format_value(6000, {type: 'float'}), + '6.000,00'); + }); });