[FIX] correctly format group header values
authorXavier Morel <xmo@openerp.com>
Mon, 12 Dec 2011 13:15:34 +0000 (14:15 +0100)
committerXavier Morel <xmo@openerp.com>
Mon, 12 Dec 2011 13:15:34 +0000 (14:15 +0100)
lp bug: https://launchpad.net/bugs/902302 fixed

bzr revid: xmo@openerp.com-20111212131534-z1a7c35c43u85c5g

addons/web/static/src/js/view_list.js
addons/web/static/test/formats.js

index 79900a9..5473e2a 100644 (file)
@@ -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";
-                        }
                         $('<td class="oe-number">')
-                            .text(_.str.sprintf(format, value))
+                            .text(openerp.web.format_value(value, column))
                             .appendTo($row);
                     } else {
                         $row.append('<td>');
index 9a8f39b..69557e9 100644 (file)
@@ -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');
+    });
 });