calendar/static/tests/helpers/mock_server/models/res_users.js

76 lines
2.3 KiB
JavaScript
Raw Normal View History

2024-05-03 12:43:00 +03:00
/** @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;
},
});