diff --git a/addons/mail/static/src/js/m2x_avatar_user.js b/addons/mail/static/src/js/m2x_avatar_user.js index 6dca143b4f2..ffa2f7f8751 100644 --- a/addons/mail/static/src/js/m2x_avatar_user.js +++ b/addons/mail/static/src/js/m2x_avatar_user.js @@ -31,7 +31,6 @@ const M2XAvatarMixin = { throw new Error(`This widget is only supported on many2one and many2many fields pointing to ${JSON.stringify(this.supportedModels)}`); } this.className = `${this.className || ''} o_clickable_m2x_avatar`.trim(); - this.noOpenChat = this.nodeOptions.no_open_chat || false; }, //-------------------------------------------------------------------------- @@ -46,11 +45,8 @@ const M2XAvatarMixin = { * @returns {Promise} */ async _openChat(params) { - if (!this.noOpenChat) { - const messaging = await Component.env.services.messaging.get(); - return messaging.openChat(params); - } - return Promise.resolve(); + const messaging = await Component.env.services.messaging.get(); + return messaging.openChat(params); }, }; @@ -189,7 +185,7 @@ export const Many2OneAvatarUser = Many2OneAvatar.extend(M2XAvatarMixin, { _onAvatarClicked(ev) { ev.stopPropagation(); // in list view, prevent from opening the record this._openChat({ userId: this.value.res_id }); - }, + } }); export const KanbanMany2OneAvatarUser = Many2OneAvatarUser.extend({ diff --git a/addons/mail/static/tests/m2x_avatar_user_tests.js b/addons/mail/static/tests/m2x_avatar_user_tests.js index 78829683bbb..bfdfa6e9183 100644 --- a/addons/mail/static/tests/m2x_avatar_user_tests.js +++ b/addons/mail/static/tests/m2x_avatar_user_tests.js @@ -313,110 +313,6 @@ QUnit.module('mail', {}, function () { kanban.destroy(); }); - QUnit.test('many2one_avatar_user widget in list view with no_open_chat set to true', async function (assert) { - assert.expect(3); - - const { widget: list } = await start({ - hasView: true, - View: ListView, - model: 'foo', - data: this.data, - arch: ``, - mockRPC(route, args) { - if (args.method === 'read') { - assert.step(`read ${args.model} ${args.args[0]}`); - } - return this._super(...arguments); - }, - }); - - mock.intercept(list, 'open_record', () => { - assert.step('open record'); - }); - - assert.strictEqual(list.$('.o_data_cell span').text(), 'MarioLuigiMarioYoshi'); - - // sanity check: later on, we'll check that clicking on the avatar doesn't open the record - await dom.click(list.$('.o_data_row:first span')); - - await dom.click(list.$('.o_data_cell:nth(0) .o_m2o_avatar > img')); - await dom.click(list.$('.o_data_cell:nth(1) .o_m2o_avatar > img')); - await dom.click(list.$('.o_data_cell:nth(2) .o_m2o_avatar > img')); - - - assert.verifySteps([ - 'open record', - ]); - - list.destroy(); - }); - - QUnit.test('many2one_avatar_user widget in kanban view', async function (assert) { - assert.expect(3); - - const { widget: kanban } = await start({ - hasView: true, - View: KanbanView, - model: 'foo', - data: this.data, - arch: ` - - - -
- -
-
-
-
`, - }); - - assert.strictEqual(kanban.$('.o_kanban_record').text().trim(), ''); - assert.containsN(kanban, '.o_m2o_avatar', 4); - dom.click(kanban.$('.o_m2o_avatar:nth(0) > img')); - dom.click(kanban.$('.o_m2o_avatar:nth(1) > img')); - dom.click(kanban.$('.o_m2o_avatar:nth(2) > img')); - dom.click(kanban.$('.o_m2o_avatar:nth(3) > img')); - - assert.verifySteps([], "no read res.user should be done since we don't want to open chat when the user clicks on avatar."); - - kanban.destroy(); - }); - - QUnit.test('many2many_avatar_user widget in form view', async function (assert) { - assert.expect(5); - - const { widget: form } = await start({ - hasView: true, - View: FormView, - model: 'foo', - data: this.data, - arch: `
`, - mockRPC(route, args) { - if (args.method === 'read') { - assert.step(`read ${args.model} ${args.args[0]}`); - } - return this._super(...arguments); - }, - res_id: 1, - }); - - assert.containsN(form, '.o_field_many2manytags.avatar.o_field_widget .badge', 2, - "should have 2 records"); - assert.strictEqual(form.$('.o_field_many2manytags.avatar.o_field_widget .badge:first img').data('src'), '/web/image/res.users/11/avatar_128', - "should have correct avatar image"); - - await dom.click(form.$('.o_field_many2manytags.avatar .badge:first .o_m2m_avatar')); - await dom.click(form.$('.o_field_many2manytags.avatar .badge:nth(1) .o_m2m_avatar')); - - assert.verifySteps([ - "read foo 1", - 'read res.users 11,23', - ]); - - form.destroy(); - }); - QUnit.test('many2one_avatar_user widget edited by the smart action "Assign to..."', async function (assert) { assert.expect(4); diff --git a/addons/project/views/project_sharing_views.xml b/addons/project/views/project_sharing_views.xml index 48d32910da9..7a0a6164622 100644 --- a/addons/project/views/project_sharing_views.xml +++ b/addons/project/views/project_sharing_views.xml @@ -103,7 +103,7 @@ - +