[FIX] mail: remove deleted message in discuss front-end
When a record was deleted, the related messages were remaining in discuss front-end causing an error when the user was clicking on them. This solves the problem by removing messages in the front-end as soon as they are deleted. Task-2960281 Part-of: odoo/odoo#99371
This commit is contained in:
@@ -659,9 +659,21 @@ class Message(models.Model):
|
||||
self.mapped('attachment_ids').filtered(
|
||||
lambda attach: attach.res_model == self._name and (attach.res_id in self.ids or attach.res_id == 0)
|
||||
).unlink()
|
||||
messages_by_partner = defaultdict(lambda: self.env['mail.message'])
|
||||
partners_with_user = self.partner_ids.filtered('user_ids')
|
||||
for elem in self:
|
||||
for partner in elem.partner_ids & partners_with_user:
|
||||
messages_by_partner[partner] |= elem
|
||||
if elem.is_thread_message():
|
||||
elem._invalidate_documents()
|
||||
|
||||
# Notify front-end of messages deletion for partners having a user
|
||||
if messages_by_partner:
|
||||
self.env['bus.bus']._sendmany([
|
||||
(partner, 'mail.message/delete', {'message_ids': messages.ids})
|
||||
for partner, messages in messages_by_partner.items()
|
||||
])
|
||||
|
||||
return super(Message, self).unlink()
|
||||
|
||||
@api.model
|
||||
|
||||
Reference in New Issue
Block a user