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 @@
-
+