From 81215120afffe54b17be3f38bbc2ac292452c0c4 Mon Sep 17 00:00:00 2001 From: Nans Lefebvre Date: Wed, 10 Apr 2019 07:55:59 +0000 Subject: [PATCH] Revert "[FIX] mail: remove attachment as main at unlink" This reverts commit abc45b1 Since by default the ondelete attribute of a many2one is `set null`, this was completely unnecessary to begin with. Bug caused by this commit: Unlink a record that has some attachments. The unlink first removes the record, then its related attachments. It calls remove_as_main_attachment, which reads the attachment res_model and res_id. This triggers a check that the related record can be read. However the related record has already been removed, an exception is raised. It is thus impossible to unlink a record. Closes #32563 closes odoo/odoo#32572 Signed-off-by: Raphael Collet (rco) --- addons/mail/models/ir_attachment.py | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/addons/mail/models/ir_attachment.py b/addons/mail/models/ir_attachment.py index 527b22409d6..ee51ed8382e 100644 --- a/addons/mail/models/ir_attachment.py +++ b/addons/mail/models/ir_attachment.py @@ -15,19 +15,6 @@ class IrAttachment(models.Model): for record in self: record.register_as_main_attachment(force=False) - @api.multi - def unlink(self): - self.remove_as_main_attachment() - super(IrAttachment, self).unlink() - - @api.multi - def remove_as_main_attachment(self): - for attachment in self: - related_record = self.env[attachment.res_model].browse(attachment.res_id) - if related_record and hasattr(related_record, 'message_main_attachment_id'): - if related_record.message_main_attachment_id == attachment: - related_record.message_main_attachment_id = False - def register_as_main_attachment(self, force=True): """ Registers this attachment as the main one of the model it is attached to.