diff --git a/addons/im_livechat/static/src/models/discuss_sidebar_category_item/discuss_sidebar_category_item.js b/addons/im_livechat/static/src/models/discuss_sidebar_category_item/discuss_sidebar_category_item.js
index 660af89a29f..4d882e929c8 100644
--- a/addons/im_livechat/static/src/models/discuss_sidebar_category_item/discuss_sidebar_category_item.js
+++ b/addons/im_livechat/static/src/models/discuss_sidebar_category_item/discuss_sidebar_category_item.js
@@ -13,7 +13,6 @@ patchRecordMethods('DiscussSidebarCategoryItem', {
if (this.channel.correspondent && this.channel.correspondent.id > 0) {
return this.channel.correspondent.avatarUrl;
}
- return '/mail/static/src/img/smiley/avatar.jpg';
}
return this._super();
},
diff --git a/addons/mail/i18n/mail.pot b/addons/mail/i18n/mail.pot
index 1474d532204..3145a900792 100644
--- a/addons/mail/i18n/mail.pot
+++ b/addons/mail/i18n/mail.pot
@@ -404,6 +404,11 @@ msgstr ""
msgid "Recommended Activities"
msgstr ""
+#. module: mail
+#: code:addons/mail/models/mail_channel.py:0
+msgid "A channel of type 'chat' cannot have more than two users."
+msgstr ""
+
#. module: mail
#: model:ir.model.fields,help:mail.field_mail_alias__alias_defaults
#: model:ir.model.fields,help:mail.field_mail_channel__alias_defaults
diff --git a/addons/mail/models/mail_channel.py b/addons/mail/models/mail_channel.py
index 7706f88d367..41fdd0f1535 100644
--- a/addons/mail/models/mail_channel.py
+++ b/addons/mail/models/mail_channel.py
@@ -95,6 +95,14 @@ class Channel(models.Model):
('uuid_unique', 'UNIQUE(uuid)', 'The channel UUID must be unique'),
]
+ # CHAT CONSTRAINT
+
+ @api.constrains('channel_last_seen_partner_ids', 'channel_partner_ids')
+ def _constraint_partners_chat(self):
+ for ch in self.filtered(lambda ch: ch.channel_type == 'chat'):
+ if len(ch.channel_last_seen_partner_ids) > 2 or len(ch.channel_partner_ids) > 2:
+ raise ValidationError(_("A channel of type 'chat' cannot have more than two users."))
+
# COMPUTE / INVERSE
@api.depends('channel_type')
diff --git a/addons/mail/static/src/models/discuss_sidebar_category_item/discuss_sidebar_category_item.js b/addons/mail/static/src/models/discuss_sidebar_category_item/discuss_sidebar_category_item.js
index e2161739c96..f064f98be0f 100644
--- a/addons/mail/static/src/models/discuss_sidebar_category_item/discuss_sidebar_category_item.js
+++ b/addons/mail/static/src/models/discuss_sidebar_category_item/discuss_sidebar_category_item.js
@@ -2,7 +2,7 @@
import { registerModel } from '@mail/model/model_core';
import { attr, many2one, one2one } from '@mail/model/model_field';
-import { clear, link } from '@mail/model/model_field_command';
+import { clear } from '@mail/model/model_field_command';
import Dialog from 'web.Dialog';
@@ -28,8 +28,11 @@ registerModel({
case 'group':
return `/web/image/mail.channel/${this.channel.id}/avatar_128?unique=${this.channel.avatarCacheKey}`;
case 'chat':
- return this.channel.correspondent.avatarUrl;
+ if (this.channel.correspondent) {
+ return this.channel.correspondent.avatarUrl;
+ }
}
+ return '/mail/static/src/img/smiley/avatar.jpg';
},
/**
* @private
diff --git a/addons/mail/tests/test_mail_channel.py b/addons/mail/tests/test_mail_channel.py
index 794d2bd5689..d45fd66ea90 100644
--- a/addons/mail/tests/test_mail_channel.py
+++ b/addons/mail/tests/test_mail_channel.py
@@ -378,7 +378,7 @@ class TestChannelInternals(MailCommon):
self.test_channel.with_context(self._test_context).write({
'channel_partner_ids': [Command.link(self.user_employee.partner_id.id), Command.link(test_partner.id)],
})
- test_chat = self.env['mail.channel'].with_context(self._test_context).create({
+ test_chat = self.env['mail.channel'].with_user(self.user_employee).with_context(self._test_context).create({
'name': 'test',
'channel_type': 'chat',
'public': 'private',
diff --git a/addons/mail/views/mail_channel_views.xml b/addons/mail/views/mail_channel_views.xml
index 9387cb7a744..9797c440da2 100644
--- a/addons/mail/views/mail_channel_views.xml
+++ b/addons/mail/views/mail_channel_views.xml
@@ -80,7 +80,8 @@
-
+
+