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');
+ });
});
|