From 2750c09548cd45574f0b4707602ce661e1d67cf8 Mon Sep 17 00:00:00 2001 From: "Didier (did)" Date: Wed, 22 Sep 2021 12:46:37 +0000 Subject: [PATCH] [FIX] mail: show group chat in messaging menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit part of task-2634175 closes odoo/odoo#77014 X-original-commit: f37de5ce6fb0e9e7adf50b409c7a5416467396fd Signed-off-by: Sébastien Theys (seb) Signed-off-by: Phenix --- .../tests/messaging_menu_tests.js | 29 +++++++++++++++++++ .../mail/static/src/models/thread/thread.js | 2 +- .../mail/static/tests/helpers/mock_server.js | 9 +----- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/addons/mail/static/src/components/messaging_menu/tests/messaging_menu_tests.js b/addons/mail/static/src/components/messaging_menu/tests/messaging_menu_tests.js index 0d23c49658e..f773ce7c05e 100644 --- a/addons/mail/static/src/components/messaging_menu/tests/messaging_menu_tests.js +++ b/addons/mail/static/src/components/messaging_menu/tests/messaging_menu_tests.js @@ -1039,6 +1039,35 @@ QUnit.test('respond to notification prompt (denied)', async function (assert) { ); }); +QUnit.test('Group chat should be displayed inside the chat section of the messaging menu', async function (assert) { + assert.expect(1); + + this.data['mail.channel'].records.push({ + id: 11, + channel_type: 'group', + is_pinned: true, + }); + await this.start(); + + await afterNextRender(() => + document.querySelector('.o_MessagingMenu_toggler').click() + ); + await afterNextRender(() => + document.querySelector(`.o_MessagingMenu_tabButton[data-tab-id="chat"]`).click() + ); + + assert.strictEqual( + document.querySelectorAll(` + .o_MessagingMenu_dropdownMenu + .o_ThreadPreview[data-thread-local-id="${this.messaging.models['mail.thread'].findFromIdentifyingData({ + id: 11, + model: 'mail.channel', + }).localId}"]`).length, + 1, + "should have one preview of group" + ); +}); + }); }); }); diff --git a/addons/mail/static/src/models/thread/thread.js b/addons/mail/static/src/models/thread/thread.js index 9d874019d1d..4018dbf235a 100644 --- a/addons/mail/static/src/models/thread/thread.js +++ b/addons/mail/static/src/models/thread/thread.js @@ -1460,7 +1460,7 @@ function factory(dependencies) { * @returns {boolean} */ _computeIsChatChannel() { - return this.channel_type === 'chat'; + return this.channel_type === 'chat' || this.channel_type === 'group'; } /** diff --git a/addons/mail/static/tests/helpers/mock_server.js b/addons/mail/static/tests/helpers/mock_server.js index e8edf3d8cd9..93674dbc6fb 100644 --- a/addons/mail/static/tests/helpers/mock_server.js +++ b/addons/mail/static/tests/helpers/mock_server.js @@ -1780,23 +1780,16 @@ MockServer.include({ _mockResPartner_GetChannelsAsMember(ids) { const partner = this._getRecords('res.partner', [['id', 'in', ids]])[0]; const channels = this._getRecords('mail.channel', [ - ['channel_type', '=', 'channel'], + ['channel_type', 'in', ['channel', 'group']], ['members', 'in', partner.id], - ['public', 'in', ['public', 'groups']], ]); const directMessages = this._getRecords('mail.channel', [ ['channel_type', '=', 'chat'], ['is_pinned', '=', true], ['members', 'in', partner.id], ]); - const privateGroups = this._getRecords('mail.channel', [ - ['channel_type', '=', 'channel'], - ['members', 'in', partner.id], - ['public', '=', 'private'], - ]); return [ ...channels, - ...privateGroups, ...directMessages, ]; },