From 72a929d30ba928bf576a753d302efd964b344d93 Mon Sep 17 00:00:00 2001 From: Florent de Labarre Date: Mon, 17 May 2021 11:11:34 +0000 Subject: [PATCH] [FIX] mail: prevent useless write In database with frontend and live chat there are lot of bad query error. bad query: UPDATE "mail_channel_partner" SET "write_uid"=5,"write_date"=(now() at time zone 'UTC') WHERE id IN (328111) closes odoo/odoo#71207 Error: Could not serialize access due to concurrent update X-original-commit: 36a9e761c8d6c1c6e9611cc410ecca82ff2b1659 Signed-off-by: Thibault Delavallee (tde) --- addons/mail/models/mail_channel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/mail/models/mail_channel.py b/addons/mail/models/mail_channel.py index f82a73304c4..ac5b6de4cd6 100644 --- a/addons/mail/models/mail_channel.py +++ b/addons/mail/models/mail_channel.py @@ -983,7 +983,7 @@ class Channel(models.Model): """ Hook for website_livechat channel unpin and cleaning """ self.ensure_one() channel_partners = self.env['mail.channel.partner'].search( - [('partner_id', '=', self.env.user.partner_id.id), ('channel_id', '=', self.id)]) + [('partner_id', '=', self.env.user.partner_id.id), ('channel_id', '=', self.id), ('is_pinned', '!=', pinned)]) self.env['bus.bus'].sendone((self._cr.dbname, 'res.partner', self.env.user.partner_id.id), self.channel_info('unsubscribe' if not pinned else False)[0]) if channel_partners: channel_partners.write({'is_pinned': pinned})