diff --git a/addons/web/static/src/js/formats.js b/addons/web/static/src/js/formats.js index 3c044bdff99..3f04025f265 100644 --- a/addons/web/static/src/js/formats.js +++ b/addons/web/static/src/js/formats.js @@ -171,15 +171,23 @@ instance.web.format_value = function (value, descriptor, value_if_empty) { case 'datetime': if (typeof(value) == "string") value = new moment(instance.web.auto_str_to_date(value)); - + else { + value = new moment(value); + } return value.format(date_format + ' ' + time_format); case 'date': if (typeof(value) == "string") value = new moment(instance.web.str_to_date(value.substring(0,10))); + else { + value = new moment(value); + } return value.format(date_format); case 'time': if (typeof(value) == "string") value = new moment(instance.web.auto_str_to_date(value)); + else { + value = new moment(value); + } return value.format(time_format); case 'selection': case 'statusbar': // Each choice is [value, label] diff --git a/addons/web/static/test/formats.js b/addons/web/static/test/formats.js index 5549e6e1772..296bbd4b8bb 100644 --- a/addons/web/static/test/formats.js +++ b/addons/web/static/test/formats.js @@ -4,17 +4,17 @@ openerp.testing.section('web-formats', { test("format_datetime", function (instance) { var date = instance.web.str_to_datetime("2009-05-04 12:34:23"); var str = instance.web.format_value(date, {type:"datetime"}); - equal(str, new moment(date).format("MM/DD/YYYY HH:mm:ss")); + equal(str, (new moment(date)).format("MM/DD/YYYY HH:mm:ss")); }); test("format_date", function (instance) { var date = instance.web.str_to_datetime("2009-05-04 12:34:23"); var str = instance.web.format_value(date, {type:"date"}); - equal(str, new moment(date).format("MM/DD/YYYY")); + equal(str, (new moment(date)).format("MM/DD/YYYY")); }); test("format_time", function (instance) { var date = instance.web.str_to_datetime("2009-05-04 12:34:23"); var str = instance.web.format_value(date, {type:"time"}); - equal(str, new moment(date).format("HH:mm:ss")); + equal(str, (new moment(date)).format("HH:mm:ss")); }); test("format_float_time", function (instance) { strictEqual( @@ -173,14 +173,16 @@ openerp.testing.section('web-formats', { 'Mon, 2009 May 04'); strictEqual(instance.web.parse_value('Mon, 2009 May 04', {type: 'date'}), '2009-05-04'); + instance.web._t.database.parameters.date_format = '%m/%d/%Y'; }); test('extended ES date format', function (instance) { - instance.web._t.database.parameters.date_format = '%a, %Y.eko %bren %da'; - var date = instance.web.str_to_date("2009-05-04"); - strictEqual(instance.web.format_value(date, {type:"date"}), - 'Mon, 2009. May 04'); - strictEqual(instance.web.parse_value('Mon, 2009. May 04', {type: 'date'}), - '2009-05-04'); - }); + instance.web._t.database.parameters.date_format = '%a, %Y.eko %b ren %da'; + var date = instance.web.str_to_date("2009-05-04"); + strictEqual(instance.web.format_value(date, {type:"date"}), + 'Mon, 2009.eko May ren 04'); + strictEqual(instance.web.parse_value('Mon, 2009.eko May ren 04', {type: 'date'}), + '2009-05-04'); + instance.web._t.database.parameters.date_format = '%m/%d/%Y'; + }); });