diff --git a/addons/website_livechat/models/discuss_channel.py b/addons/website_livechat/models/discuss_channel.py
index eafb26562a7..d78e72c27d1 100644
--- a/addons/website_livechat/models/discuss_channel.py
+++ b/addons/website_livechat/models/discuss_channel.py
@@ -33,10 +33,11 @@ class DiscussChannel(models.Model):
for channel in self.filtered('livechat_visitor_id'):
visitor = channel.livechat_visitor_id
try:
+ country_id = visitor.partner_id.country_id or visitor.country_id
channel_infos_dict[channel.id]['visitor'] = {
- 'display_name': visitor.display_name,
- 'country_code': visitor.country_id.code.lower() if visitor.country_id else False,
- 'country_id': visitor.country_id.id,
+ 'display_name': visitor.partner_id.name or visitor.partner_id.display_name or visitor.display_name,
+ 'country_code': country_id.code.lower() if country_id else False,
+ 'country_id': country_id.id,
'id': visitor.id,
'is_connected': visitor.is_connected,
'history': self.sudo()._get_visitor_history(visitor),
diff --git a/addons/website_livechat/static/src/core/persona_model_patch.js b/addons/website_livechat/static/src/core/persona_model_patch.js
index fa8a7e84ccb..15666e72b0e 100644
--- a/addons/website_livechat/static/src/core/persona_model_patch.js
+++ b/addons/website_livechat/static/src/core/persona_model_patch.js
@@ -5,15 +5,10 @@ import { patch } from "@web/core/utils/patch";
patch(Persona.prototype, "website_livechat", {
get countryFlagUrl() {
- const country = this.partner?.country ?? this.country;
- return country
- ? `/base/static/img/country_flags/${encodeURIComponent(country.code.toLowerCase())}.png`
+ return this.country
+ ? `/base/static/img/country_flags/${encodeURIComponent(
+ this.country.code.toLowerCase()
+ )}.png`
: undefined;
},
- get nameOrDisplayName() {
- if (this.partner) {
- return this.partner.nameOrDisplayName;
- }
- return this._super();
- },
});
diff --git a/addons/website_livechat/static/src/core/persona_service_patch.js b/addons/website_livechat/static/src/core/persona_service_patch.js
index 6b2799b9e3f..391bbf57c79 100644
--- a/addons/website_livechat/static/src/core/persona_service_patch.js
+++ b/addons/website_livechat/static/src/core/persona_service_patch.js
@@ -13,17 +13,11 @@ patch(PersonaService.prototype, "website_livechat", {
persona.langName = data.lang_name ?? persona.langName;
persona.name = data.display_name ?? persona.name;
persona.websiteName = data.website_name ?? persona.websiteName;
- if (data.country_id) {
- persona.country = persona.country ?? {};
- persona.country.id = data.country_id;
- persona.country.code = data.country_code ?? persona.country.code;
- }
- if (data.partner_id) {
- persona.partner = this.insert({
- id: data.partner_id,
- type: "partner",
- });
- }
+ }
+ if (data.country_id) {
+ persona.country = persona.country ?? {};
+ persona.country.id = data.country_id;
+ persona.country.code = data.country_code ?? persona.country.code;
}
},
});
diff --git a/addons/website_livechat/static/src/core/thread_service_patch.js b/addons/website_livechat/static/src/core/thread_service_patch.js
index 65de7db826b..fdf48a1342a 100644
--- a/addons/website_livechat/static/src/core/thread_service_patch.js
+++ b/addons/website_livechat/static/src/core/thread_service_patch.js
@@ -20,9 +20,9 @@ patch(ThreadService.prototype, "website_livechat", {
*/
avatarUrl(persona, thread) {
if (persona?.type === "visitor" && thread?.id) {
- return persona.partner
+ return persona.partner_id
? `/discuss/channel/${encodeURIComponent(thread.id)}/partner/${encodeURIComponent(
- persona.id
+ persona.partner_id
)}/avatar_128`
: DEFAULT_AVATAR;
}
diff --git a/addons/website_livechat/static/src/core_ui/thread_patch.xml b/addons/website_livechat/static/src/core_ui/thread_patch.xml
index 4c633a54464..8bb512bd278 100644
--- a/addons/website_livechat/static/src/core_ui/thread_patch.xml
+++ b/addons/website_livechat/static/src/core_ui/thread_patch.xml
@@ -5,7 +5,7 @@