/** @odoo-module **/ import { TEST_GROUP_IDS, TEST_USER_IDS } from "@bus/../tests/helpers/test_constants"; import { addFakeModel, addModelNamesToFetch, insertModelFields, insertRecords, } from "@bus/../tests/helpers/model_definitions_helpers"; //-------------------------------------------------------------------------- // Models //-------------------------------------------------------------------------- addModelNamesToFetch([ "mail.activity", "mail.activity.type", "mail.channel", "mail.channel.member", "mail.channel.rtc.session", "mail.followers", "mail.guest", "mail.link.preview", "mail.message", "mail.message.subtype", "mail.notification", "mail.shortcode", "mail.template", "mail.tracking.value", "res.users.settings", "res.users.settings.volumes", ]); addFakeModel("res.fake", { message_ids: { string: "Messages", type: "one2many", relation: "mail.message" }, activity_ids: { string: "Activities", type: "one2many", relation: "mail.activity" }, email_cc: { type: "char" }, partner_ids: { relation: "res.partner", string: "Related partners", type: "one2many" }, }); addFakeModel("m2x.avatar.user", { user_id: { type: "many2one", relation: "res.users" }, user_ids: { type: "many2many", relation: "res.users", string: "Users" }, }); //-------------------------------------------------------------------------- // Insertion of fields //-------------------------------------------------------------------------- insertModelFields("mail.activity", { chaining_type: { default: "suggest" }, }); insertModelFields("mail.channel", { author_id: { default() { return this.currentPartnerId; }, }, avatarCacheKey: { string: "Avatar Cache Key", type: "datetime" }, channel_member_ids: { default() { return [[0, 0, { partner_id: this.currentPartnerId }]]; }, }, channel_type: { default: "channel" }, group_based_subscription: { string: "Group based subscription", type: "boolean" }, group_public_id: { default() { return TEST_GROUP_IDS.groupUserId; }, }, uuid: { default: () => _.uniqueId("mail.channel_uuid-") }, }); insertModelFields("mail.channel.member", { fold_state: { default: "open" }, is_pinned: { default: true }, message_unread_counter: { default: 0 }, }); insertModelFields("mail.message", { author_id: { default: TEST_USER_IDS.currentPartnerId }, history_partner_ids: { relation: "res.partner", string: "Partners with History", type: "many2many", }, is_discussion: { string: "Discussion", type: "boolean" }, is_note: { string: "Discussion", type: "boolean" }, is_notification: { string: "Note", type: "boolean" }, needaction_partner_ids: { relation: "res.partner", string: "Partners with Need Action", type: "many2many", }, res_model_name: { string: "Res Model Name", type: "char" }, }); insertModelFields("mail.message.subtype", { subtype_xmlid: { type: "char" }, }); insertModelFields("mail.tracking.value", { changed_field: { string: "Changed field", type: "char" }, new_value: { string: "New value", type: "char" }, old_value: { string: "Old value", type: "char" }, }); insertModelFields("res.users.settings", { is_discuss_sidebar_category_channel_open: { default: true }, is_discuss_sidebar_category_chat_open: { default: true }, }); //-------------------------------------------------------------------------- // Insertion of records //-------------------------------------------------------------------------- insertRecords("mail.activity.type", [ { icon: "fa-envelope", id: 1, name: "Email" }, { icon: "fa-upload", id: 28, name: "Upload Document" }, ]); insertRecords("mail.message.subtype", [ { default: false, internal: true, name: "Activities", sequence: 90, subtype_xmlid: "mail.mt_activities", }, { default: false, internal: true, name: "Note", sequence: 100, subtype_xmlid: "mail.mt_note", track_recipients: true, }, { name: "Discussions", sequence: 0, subtype_xmlid: "mail.mt_comment", track_recipients: true }, ]);