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', }),