mirror of
https://github.com/bringout/oca-ocb-technical.git
synced 2026-04-22 11:52:08 +02:00
19.0 vanilla
This commit is contained in:
parent
5faf7397c5
commit
2696f14ed7
721 changed files with 220375 additions and 91221 deletions
|
|
@ -0,0 +1,5 @@
|
|||
import { models } from "@web/../tests/web_test_helpers";
|
||||
|
||||
export class CalendarAttendee extends models.ServerModel {
|
||||
_name = "calendar.attendee";
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
import { models, fields, serverState } from "@web/../tests/web_test_helpers";
|
||||
|
||||
export class CalendarEvent extends models.ServerModel {
|
||||
_name = "calendar.event";
|
||||
|
||||
user_id = fields.Generic({ default: serverState.userId });
|
||||
partner_id = fields.Generic({ default: serverState.partnerId });
|
||||
partner_ids = fields.Generic({ default: [[6, 0, [serverState.partnerId]]] });
|
||||
|
||||
has_access() {
|
||||
return true;
|
||||
}
|
||||
|
||||
get_default_duration() {
|
||||
return 3.25;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
import { models } from "@web/../tests/web_test_helpers";
|
||||
|
||||
export class CalendarFilters extends models.ServerModel {
|
||||
_name = "calendar.filters";
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
import { mailModels, openView } from "@mail/../tests/mail_test_helpers";
|
||||
import { fields } from "@web/../tests/web_test_helpers";
|
||||
|
||||
export class MailActivity extends mailModels.MailActivity {
|
||||
name = fields.Char();
|
||||
|
||||
async action_create_calendar_event() {
|
||||
await openView({
|
||||
res_model: "calendar.event",
|
||||
views: [[false, "calendar"]],
|
||||
});
|
||||
return {
|
||||
type: "ir.actions.act_window",
|
||||
name: "Meetings",
|
||||
res_model: "calendar.event",
|
||||
view_mode: "calendar",
|
||||
views: [[false, "calendar"]],
|
||||
target: "current",
|
||||
};
|
||||
}
|
||||
unlink_w_meeting() {
|
||||
const eventIds = this.map((act) => act.calendar_event_id);
|
||||
const res = this.unlink(arguments[0]);
|
||||
this.env["calendar.event"].unlink(eventIds);
|
||||
return res;
|
||||
}
|
||||
|
||||
/** @param {number[]} ids */
|
||||
_to_store(store) {
|
||||
super._to_store(...arguments);
|
||||
for (const activity of this) {
|
||||
if (activity.calendar_event_id) {
|
||||
store._add_record_fields(this.browse(activity.id), {
|
||||
calendar_event_id: activity.calendar_event_id,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
import { mailModels } from "@mail/../tests/mail_test_helpers";
|
||||
import { serverState } from "@web/../tests/web_test_helpers";
|
||||
import { serializeDateTime } from "@web/core/l10n/dates";
|
||||
const { DateTime } = luxon;
|
||||
|
||||
export class ResUsers extends mailModels.ResUsers {
|
||||
/**
|
||||
* Simulates `_systray_get_calendar_event_domain` on `res.users`.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_systray_get_calendar_event_domain() {
|
||||
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.env["calendar.attendee"].search([
|
||||
["partner_id", "=", serverState.partnerId],
|
||||
["state", "!=", "declined"],
|
||||
]);
|
||||
return [
|
||||
"&",
|
||||
"|",
|
||||
"&",
|
||||
"|",
|
||||
["start", ">=", serializeDateTime(startDate)],
|
||||
["stop", ">=", serializeDateTime(startDate)],
|
||||
["start", "<=", serializeDateTime(endDate)],
|
||||
// FIXME: Makes "activity_menu.test.js" fail
|
||||
// "&",
|
||||
// ["allday", "=", true],
|
||||
// ["start_date", "=", serializeDateTime(startDate)],
|
||||
["attendee_ids", "in", [...currentPartnerAttendeeIds]],
|
||||
];
|
||||
}
|
||||
|
||||
/** @override */
|
||||
_get_activity_groups() {
|
||||
const activities = super._get_activity_groups();
|
||||
const meetingsLines = this.env["calendar.event"].search_read(
|
||||
this._systray_get_calendar_event_domain(),
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue