From cafc6c3ae08e384daaaa9ab2efd523d5e02db6eb Mon Sep 17 00:00:00 2001 From: Nicolas Martinelli Date: Fri, 23 Mar 2018 05:47:35 -0800 Subject: [PATCH] [FIX] web: incorrect date in calendar - Set the OS timezone to GMT-6 - Create a project task with a date deadline on D day - The tasks appears at D-1 in the calendar This was supposed to be fixed with 0c0fb63b0d7789b0, but actually no. opw-1815446 opw-1828130 --- .../web/static/src/js/views/calendar/calendar_model.js | 7 +++---- addons/web/static/tests/views/calendar_tests.js | 9 ++++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/addons/web/static/src/js/views/calendar/calendar_model.js b/addons/web/static/src/js/views/calendar/calendar_model.js index 23c0aea3094..9c18e306582 100644 --- a/addons/web/static/src/js/views/calendar/calendar_model.js +++ b/addons/web/static/src/js/views/calendar/calendar_model.js @@ -611,7 +611,8 @@ return AbstractModel.extend({ var date_start; var date_stop; var date_delay = evt[this.mapping.date_delay] || 1.0, - all_day = this.mapping.all_day ? evt[this.mapping.all_day] : false, + all_day = this.fields[this.mapping.date_start].type === 'date' || + this.mapping.all_day && evt[this.mapping.all_day] || false, the_title = '', attendees = []; @@ -635,8 +636,6 @@ return AbstractModel.extend({ if (this.mapping.all_day && evt[this.mapping.all_day]) { date_stop.add(1, 'days'); } - var isAllDay = this.fields[this.mapping.date_start].type === 'date' || - this.mapping.all_day && evt[this.mapping.all_day] || false; var r = { 'record': evt, 'start': date_start, @@ -644,7 +643,7 @@ return AbstractModel.extend({ 'r_start': date_start, 'r_end': date_stop, 'title': the_title, - 'allDay': isAllDay, + 'allDay': all_day, 'id': evt.id, 'attendees':attendees, }; diff --git a/addons/web/static/tests/views/calendar_tests.js b/addons/web/static/tests/views/calendar_tests.js index 6869c1bedf2..a24826709f0 100644 --- a/addons/web/static/tests/views/calendar_tests.js +++ b/addons/web/static/tests/views/calendar_tests.js @@ -1571,7 +1571,7 @@ QUnit.module('Views', { }); QUnit.test('set event as all day when field is date', function (assert) { - assert.expect(1); + assert.expect(2); this.data.event.records[0].start_date = "2016-12-14"; @@ -1595,9 +1595,16 @@ QUnit.module('Views', { viewOptions: { initialDate: initialDate, }, + session: { + getTZOffset: function () { + return -480; + } + }, }); assert.strictEqual(calendar.$('.fc-day-grid .fc-event-container').length, 1, "should be one event in the all day row"); + assert.strictEqual(calendar.model.data.data[0].r_start.date(), 14, + "the date should be 14"); calendar.destroy(); });