diff --git a/addons/web/static/src/js/formats.js b/addons/web/static/src/js/formats.js index 9432b02826f..851b60af229 100644 --- a/addons/web/static/src/js/formats.js +++ b/addons/web/static/src/js/formats.js @@ -166,9 +166,13 @@ instance.web.format_value = function (value, descriptor, value_if_empty) { value = Math.abs(value); pattern = '-' + pattern; } - return _.str.sprintf(pattern, - Math.floor(value), - Math.round((value % 1) * 60)); + var hour = Math.floor(value); + var min = Math.round((value % 1) * 60); + if (min == 60){ + min = 0; + hour = hour + 1; + } + return _.str.sprintf(pattern, hour, min); case 'many2one': // name_get value format return value[1] ? value[1].split("\n")[0] : value[1]; diff --git a/addons/web/static/test/formats.js b/addons/web/static/test/formats.js index 4536501d71d..ac602e4b693 100644 --- a/addons/web/static/test/formats.js +++ b/addons/web/static/test/formats.js @@ -68,6 +68,12 @@ openerp.testing.section('web-formats', { strictEqual( instance.web.format_value(-0.0085, {type:'float', widget:'float_time'}), '-00:01'); + strictEqual( + instance.web.format_value(4.9999, {type:'float', widget:'float_time'}), + '05:00'); + strictEqual( + instance.web.format_value(-6.9999, {type:'float', widget:'float_time'}), + '-07:00'); }); test("format_float", function (instance) { var fl = 12.1234;