From 1a3877f77218b098d30e13f1aa7f281fc903e018 Mon Sep 17 00:00:00 2001
From: Ivan Yelizariev <iel@odoo.com>
Date: Fri, 25 Nov 2022 09:48:26 +0000
Subject: [PATCH] [FIX] mail: fix _invalidate_documents on updating empty value

Method `_invalidate_documents` is used to invalidate cache on moving message to
a new record. However, it must be skipped if the message wasn't attached to any
record before. Before this commit it gives `KeyError` on reading
`self.pool[False]`.

STEPS:
* install `hr_referral` module
* open `Settings >> Technical >> Messages`
* open a record with empty values in Related Document Model/ID
* set any values in those fields

opw-3056859

closes odoo/odoo#106521

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
---
 addons/mail/models/mail_message.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/addons/mail/models/mail_message.py b/addons/mail/models/mail_message.py
index c1a12700eabf..300390e71b52 100644
--- a/addons/mail/models/mail_message.py
+++ b/addons/mail/models/mail_message.py
@@ -1221,7 +1221,7 @@ class Message(models.Model):
         for record in self:
             model = model or record.model
             res_id = res_id or record.res_id
-            if issubclass(self.pool[model], self.pool['mail.thread']):
+            if model and issubclass(self.pool[model], self.pool['mail.thread']):
                 self.env[model].invalidate_cache(fnames=[
                     'message_ids',
                     'message_unread',
-- 
GitLab