diff --git a/addons/bus/static/tests/helpers/model_definitions_setup.js b/addons/bus/static/tests/helpers/model_definitions_setup.js index fb497076d95..3c660d3d035 100644 --- a/addons/bus/static/tests/helpers/model_definitions_setup.js +++ b/addons/bus/static/tests/helpers/model_definitions_setup.js @@ -28,6 +28,7 @@ addModelNamesToFetch([ insertModelFields("res.partner", { description: { string: "description", type: "text" }, + is_company: { default: () => false }, }); //-------------------------------------------------------------------------- diff --git a/addons/im_livechat/tests/test_message.py b/addons/im_livechat/tests/test_message.py index 8e9e8d204be..8f37f037633 100644 --- a/addons/im_livechat/tests/test_message.py +++ b/addons/im_livechat/tests/test_message.py @@ -56,6 +56,7 @@ class TestImLivechatMessage(HttpCase): 'attachment_ids': [], 'author': { 'id': self.users[1].partner_id.id, + 'is_company': self.users[1].partner_id.is_company, 'name': "test1", }, 'body': message.body, diff --git a/addons/mail/models/mail_message.py b/addons/mail/models/mail_message.py index 08166eb11f5..2742fb954f3 100644 --- a/addons/mail/models/mail_message.py +++ b/addons/mail/models/mail_message.py @@ -878,6 +878,7 @@ class Message(models.Model): message_sudo = self.browse(vals['id']).sudo().with_prefetch(self.ids) author = { 'id': message_sudo.author_id.id, + 'is_company': message_sudo.author_id.is_company, 'name': message_sudo.author_id.name, } if message_sudo.author_id else [('clear',)] guestAuthor = { diff --git a/addons/mail/models/res_partner.py b/addons/mail/models/res_partner.py index 991346d0e8a..8f9cffe8f55 100644 --- a/addons/mail/models/res_partner.py +++ b/addons/mail/models/res_partner.py @@ -216,7 +216,7 @@ class Partner(models.Model): def mail_partner_format(self, fields=None): partners_format = dict() if not fields: - fields = {'id': True, 'name': True, 'email': True, 'active': True, 'im_status': True, 'user': {}} + fields = {'id': True, 'name': True, 'email': True, 'active': True, 'im_status': True, 'is_company': True, 'user': {}} for partner in self: data = {} if 'id' in fields: @@ -229,6 +229,8 @@ class Partner(models.Model): data['active'] = partner.active if 'im_status' in fields: data['im_status'] = partner.im_status + if 'is_company' in fields: + data['is_company'] = partner.is_company if 'user' in fields: internal_users = partner.user_ids - partner.user_ids.filtered('share') main_user = internal_users[0] if len(internal_users) > 0 else partner.user_ids[0] if len(partner.user_ids) > 0 else self.env['res.users'] diff --git a/addons/mail/static/src/core/common/message.js b/addons/mail/static/src/core/common/message.js index 5384d243bdd..3649f756ab7 100644 --- a/addons/mail/static/src/core/common/message.js +++ b/addons/mail/static/src/core/common/message.js @@ -164,6 +164,13 @@ export class Message extends Component { }; } + get authorAvatarAttClass() { + return { + o_object_fit_contain: this.props.message.author?.is_company, + o_object_fit_cover: !this.props.message.author?.is_company, + }; + } + get authorAvatarUrl() { if ( this.message.type === "email" && diff --git a/addons/mail/static/src/core/common/message.xml b/addons/mail/static/src/core/common/message.xml index 822b210728a..79b6b7b37ef 100644 --- a/addons/mail/static/src/core/common/message.xml +++ b/addons/mail/static/src/core/common/message.xml @@ -16,7 +16,7 @@