From 66301a4ac6975fd3e58c0c2ae310bf2b59ecf623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20K=C3=BChn?= Date: Wed, 26 Apr 2023 14:15:35 +0000 Subject: [PATCH] [FIX] mail: new needaction message from chatter in messaging menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before this commit, when receiving a new needaction message from chatter, the messaging was not updating itself to show this new needaction. closes odoo/odoo#119843 Signed-off-by: Sébastien Theys (seb) --- .../mail/static/src/core/messaging_service.js | 5 +++++ .../web/messaging_menu/notification_item.js | 2 +- .../messaging_menu/messaging_menu_tests.js | 21 +++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/addons/mail/static/src/core/messaging_service.js b/addons/mail/static/src/core/messaging_service.js index 77b9ae65884..6d53c7ec59c 100644 --- a/addons/mail/static/src/core/messaging_service.js +++ b/addons/mail/static/src/core/messaging_service.js @@ -276,6 +276,11 @@ export class Messaging { inbox.messages.push(message); inbox.counter++; } + const thread = message.originThread; + if (!thread.needactionMessages.includes(message)) { + thread.needactionMessages.push(message); + thread.message_needaction_counter++; + } break; } case "mail.message/delete": { diff --git a/addons/mail/static/src/web/messaging_menu/notification_item.js b/addons/mail/static/src/web/messaging_menu/notification_item.js index a3fe4fd7483..4c3ba754b04 100644 --- a/addons/mail/static/src/web/messaging_menu/notification_item.js +++ b/addons/mail/static/src/web/messaging_menu/notification_item.js @@ -13,7 +13,7 @@ export class NotificationItem extends Component { "datetime?", "displayName", "hasMarkAsReadButton?", - "iconSrc", + "iconSrc?", "isLast", "onClick", "onSwipeLeft?", diff --git a/addons/mail/static/tests/messaging_menu/messaging_menu_tests.js b/addons/mail/static/tests/messaging_menu/messaging_menu_tests.js index 7c55deb0cb5..06c644a3ee2 100644 --- a/addons/mail/static/tests/messaging_menu/messaging_menu_tests.js +++ b/addons/mail/static/tests/messaging_menu/messaging_menu_tests.js @@ -944,3 +944,24 @@ QUnit.test("failure notifications are shown before channel preview", async (asse ".o-mail-NotificationItem:contains(An error occurred when sending an email) ~ .o-mail-NotificationItem:contains(message)" ); }); + +QUnit.test("messaging menu should show new needaction messages from chatter", async (assert) => { + const pyEnv = await startServer(); + const partnerId = pyEnv["res.partner"].create({ name: "Frodo Baggins" }); + await start(); + await click(".o_menu_systray i[aria-label='Messages']"); + assert.containsNone($, ".o-mail-NotificationItem:contains(@Mitchell Admin)"); + + // simulate receiving a new needaction message + await afterNextRender(() => { + pyEnv["bus.bus"]._sendone(pyEnv.currentPartner, "mail.message/inbox", { + body: "@Mitchell Admin", + id: 100, + needaction_partner_ids: [pyEnv.currentPartnerId], + model: "res.partner", + res_id: partnerId, + record_name: "Frodo Baggins", + }); + }); + assert.containsOnce($, ".o-mail-NotificationItem:contains(@Mitchell Admin)"); +});