diff --git a/addons/im_livechat/static/src/embed/common/livechat_service.js b/addons/im_livechat/static/src/embed/common/livechat_service.js index 528fdd2779f..7c8de6e86fa 100644 --- a/addons/im_livechat/static/src/embed/common/livechat_service.js +++ b/addons/im_livechat/static/src/embed/common/livechat_service.js @@ -91,7 +91,6 @@ export class LivechatService { (this.sessionCookie && visitorUid !== userId) ) { this.leaveSession(); - this.state = SESSION_STATE.NONE; } browser.localStorage.setItem(ODOO_VERSION_KEY, currOdooVersion); } @@ -132,7 +131,7 @@ export class LivechatService { async leaveSession({ notifyServer = true } = {}) { const session = JSON.parse(cookie.get(this.SESSION_COOKIE) ?? "{}"); try { - if (this.state === SESSION_STATE.PERSISTED && notifyServer) { + if (session?.uuid && notifyServer) { this.busService.deleteChannel(session.uuid); await this.rpc("/im_livechat/visitor_leave_session", { uuid: session.uuid }); } diff --git a/addons/website_livechat/models/website.py b/addons/website_livechat/models/website.py index f5b903337ed..282e316a837 100644 --- a/addons/website_livechat/models/website.py +++ b/addons/website_livechat/models/website.py @@ -54,7 +54,7 @@ class Website(models.Model): # linked to another guest in the meantime. We need to # update the channel to link it to the current guest. channel_guest_member = chat_request_channel.channel_member_ids.filtered(lambda m: m.guest_id == current_guest) - chat_request_channel.write({'channel_member_ids': [Command.unlink(channel_guest_member), Command.link(current_guest)]}) + chat_request_channel.write({'channel_member_ids': [Command.unlink(channel_guest_member), Command.create({'guest_id': current_guest.id})]}) if not current_guest: channel_guest._set_auth_cookie() return {