From 78cdf8089b975dd227bc7e526c98afc7eb563c04 Mon Sep 17 00:00:00 2001 From: Xavier Dubuc Date: Fri, 2 Oct 2020 07:00:27 +0000 Subject: [PATCH] [IMP] mail: move odoobot avatar logic in partner model MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit task-2348684 closes odoo/odoo#58969 Signed-off-by: Sébastien Theys (seb) --- .../static/src/components/message/message.js | 7 +------ .../mail/static/src/models/partner/partner.js | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/addons/mail/static/src/components/message/message.js b/addons/mail/static/src/components/message/message.js index 0f410b78673..c06b8dfdf3f 100644 --- a/addons/mail/static/src/components/message/message.js +++ b/addons/mail/static/src/components/message/message.js @@ -131,12 +131,7 @@ class Message extends Component { * @returns {string} */ get avatar() { - if ( - this.message.author && - this.message.author === this.env.messaging.partnerRoot - ) { - return '/mail/static/src/img/odoobot.png'; - } else if (this.message.author) { + if (this.message.author) { // TODO FIXME for public user this might not be accessible. task-2223236 // we should probably use the correspondig attachment id + access token // or create a dedicated route to get message image, checking the access right of the message diff --git a/addons/mail/static/src/models/partner/partner.js b/addons/mail/static/src/models/partner/partner.js index e52e148c9e1..12c6f3676e2 100644 --- a/addons/mail/static/src/models/partner/partner.js +++ b/addons/mail/static/src/models/partner/partner.js @@ -195,6 +195,9 @@ function factory(dependencies) { * @returns {string} */ _computeAvatarUrl() { + if (this === this.env.messaging.partnerRoot) { + return '/mail/static/src/img/odoobot.png'; + } return `/web/image/res.partner/${this.id}/image_128`; } @@ -260,6 +263,14 @@ function factory(dependencies) { return this.display_name || this.user && this.user.display_name; } + /** + * @private + * @returns {mail.messaging} + */ + _computeMessaging() { + return [['link', this.env.messaging]]; + } + /** * @private * @returns {string|undefined} @@ -278,6 +289,7 @@ function factory(dependencies) { compute: '_computeAvatarUrl', dependencies: [ 'id', + 'messagingPartnerRoot', ], }), correspondentThreads: one2many('mail.thread', { @@ -311,6 +323,12 @@ function factory(dependencies) { messagesAsAuthor: one2many('mail.message', { inverse: 'author', }), + messaging: many2one('mail.messaging', { + compute: '_computeMessaging', + }), + messagingPartnerRoot: many2one('mail.partner', { + related: 'messaging.partnerRoot', + }), model: attr({ default: 'res.partner', }),