76 lines
2.3 KiB
JavaScript
76 lines
2.3 KiB
JavaScript
|
/** @odoo-module **/
|
||
|
|
||
|
// ensure mail override is applied first.
|
||
|
import "@mail/../tests/helpers/mock_server/models/res_users";
|
||
|
|
||
|
import { patch } from "@web/core/utils/patch";
|
||
|
import { serializeDateTime } from "@web/core/l10n/dates";
|
||
|
import { MockServer } from "@web/../tests/helpers/mock_server";
|
||
|
const { DateTime } = luxon;
|
||
|
|
||
|
patch(MockServer.prototype, {
|
||
|
/**
|
||
|
* Simulates `_systray_get_calendar_event_domain` on `res.users`.
|
||
|
*
|
||
|
* @private
|
||
|
*/
|
||
|
_mockResUsers_SystrayGetCalendarEventDomain() {
|
||
|
const startDate = DateTime.fromObject({
|
||
|
hours: 0,
|
||
|
minutes: 0,
|
||
|
seconds: 0,
|
||
|
milliseconds: 0,
|
||
|
});
|
||
|
const endDate = DateTime.fromObject({
|
||
|
hours: 23,
|
||
|
minutes: 59,
|
||
|
seconds: 59,
|
||
|
milliseconds: 999,
|
||
|
});
|
||
|
|
||
|
const currentPartnerAttendeeIds = this.pyEnv["calendar.attendee"].search([
|
||
|
["partner_id", "=", this.pyEnv.currentPartnerId],
|
||
|
["state", "!=", "declined"],
|
||
|
]);
|
||
|
return [
|
||
|
"&",
|
||
|
"|",
|
||
|
"&",
|
||
|
"|",
|
||
|
["start", ">=", serializeDateTime(startDate)],
|
||
|
["stop", ">=", serializeDateTime(startDate)],
|
||
|
["start", "<=", serializeDateTime(endDate)],
|
||
|
"&",
|
||
|
["allday", "=", true],
|
||
|
["start_date", "=", serializeDateTime(startDate)],
|
||
|
["attendee_ids", "in", currentPartnerAttendeeIds],
|
||
|
];
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* Simulates `systray_get_activities` on `res.users`.
|
||
|
*
|
||
|
* @override
|
||
|
*/
|
||
|
_mockResUsersSystrayGetActivities() {
|
||
|
const activities = super._mockResUsersSystrayGetActivities(...arguments);
|
||
|
const meetingsLines = this.pyEnv["calendar.event"].searchRead(
|
||
|
this._mockResUsers_SystrayGetCalendarEventDomain(),
|
||
|
{
|
||
|
fields: ["id", "start", "name", "allday"],
|
||
|
order: "start",
|
||
|
}
|
||
|
);
|
||
|
if (meetingsLines.length) {
|
||
|
activities.unshift({
|
||
|
id: "calendar.event", // for simplicity
|
||
|
meetings: meetingsLines,
|
||
|
model: "calendar.event",
|
||
|
name: "Today's Meetings",
|
||
|
type: "meeting",
|
||
|
});
|
||
|
}
|
||
|
return activities;
|
||
|
},
|
||
|
});
|