From e155eda05ca1ed39244089ec255f557efef374d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20K=C3=BChn?= Date: Thu, 27 Apr 2023 10:22:06 +0000 Subject: [PATCH] [FIX] mail: no crash when mentioning partner after channel mention MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Steps to reproduce: - Open channel general - type "#" in composer so it prompts "#general" - delete "#" - type "@" in composer This happens because the partner suggestion part relies on raw server data in model thread, `thread.channel`, which is erased from the channel suggestion. This was used to detect whether partner is member or not, in `thread.channel.channelMembers`. This commit fixes the issue by making partner suggestion relies on more reliable data in models, `thread.channelMembers`. `thread.channel` is deprecated, and will eventually be removed. closes odoo/odoo#119935 Signed-off-by: Sébastien Theys (seb) --- addons/mail/static/src/composer/suggestion_service.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/mail/static/src/composer/suggestion_service.js b/addons/mail/static/src/composer/suggestion_service.js index ef01657c10c..3d89726da61 100644 --- a/addons/mail/static/src/composer/suggestion_service.js +++ b/addons/mail/static/src/composer/suggestion_service.js @@ -216,9 +216,9 @@ export class SuggestionService { if (!isAInternalUser && isBInternalUser) { return 1; } - if (thread?.channel) { - const isMember1 = thread.channel.channelMembers[0][1].includes(p1); - const isMember2 = thread.channel.channelMembers[0][1].includes(p2); + if (thread.model === "discuss.channel") { + const isMember1 = thread.channelMembers.some((member) => member.persona === p1); + const isMember2 = thread.channelMembers.some((member) => member.persona === p2); if (isMember1 && !isMember2) { return -1; }