[FIX] web: calendar: set event without time as all day

Before this commit, when an event had only a date, the event
was set to midnight.
This commit sets the event as all day event if the field used as start date
is only a date and not a datetime.
This commit is contained in:
fwi-odoo
2017-09-11 16:41:40 +02:00
parent 3ac2a1106c
commit 268e6d9530
2 changed files with 34 additions and 2 deletions
@@ -614,7 +614,8 @@ 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,
@@ -622,7 +623,7 @@ return AbstractModel.extend({
'r_start': date_start,
'r_end': date_stop,
'title': the_title,
'allDay': this.mapping.all_day && evt[this.mapping.all_day] || false,
'allDay': isAllDay,
'id': evt.id,
'attendees':attendees,
};
@@ -1257,6 +1257,37 @@ QUnit.module('Views', {
calendar.destroy();
$view.remove();
});
QUnit.test('set event as all day when field is date', function (assert) {
assert.expect(1);
this.data.event.records[0].start_date = "2016-12-14";
var calendar = createView({
View: CalendarView,
model: 'event',
data: this.data,
arch:
'<calendar class="o_calendar_test" '+
'event_open_popup="true" '+
'date_start="start_date" '+
'all_day="allday" '+
'mode="week" '+
'attendee="partner_ids" '+
'color="partner_id">'+
'<field name="name"/>'+
'<filter name="user_id" avatar_field="image"/>'+
'<field name="partner_ids" write_model="filter_partner" write_field="partner_id"/>'+
'</calendar>',
archs: archs,
viewOptions: {
initialDate: initialDate,
},
});
assert.strictEqual(calendar.$('.fc-day-grid .fc-event-container').length, 1,
"should be one event in the all day row");
calendar.destroy();
});
});
});