summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGoffin Simon <sig@odoo.com>2020-03-31 10:02:37 +0000
committerGoffin Simon <sig@odoo.com>2020-04-02 06:37:06 +0000
commit2a184ae62c330024820bf4e27ba512e85e89ce7c (patch)
tree7becbc1f0d703a687ab136bcc17e7d76ad199a51
parent7e2504ec0c9d8305bcdeb1e68a64054d84d74124 (diff)
[FIX] crm_iap_lead, crm_iap_lead_enrich: Uninstalling CRM
Steps to reproduce the bug: - Let's consider an instance with crm_iap_lead and crm_iap_lead_enrich installed - Uninstall crm Bug: An error was raised: ('Record does not exist or has been deleted.\n(Record: ir.model.fields(15085,), User: 1)', None) because the field reveal_id is shared on model crm.lead and modules crm_iap_lead and crm_iap_lead_enrich are independent from each other. Inspired from https://github.com/odoo/odoo/commit/ff7efbb1e81cd6987601c03f0b75a37d2df8e331 opw:2224952 closes odoo/odoo#48813 X-original-commit: 80879be5d7ab863a097439df1cd61aa236edaca4 Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
-rw-r--r--addons/crm_iap_lead/models/__init__.py1
-rw-r--r--addons/crm_iap_lead/models/ir_model_fields.py18
-rw-r--r--addons/crm_iap_lead_enrich/models/__init__.py1
-rw-r--r--addons/crm_iap_lead_enrich/models/ir_model_fields.py18
4 files changed, 38 insertions, 0 deletions
diff --git a/addons/crm_iap_lead/models/__init__.py b/addons/crm_iap_lead/models/__init__.py
index d529ee24678..1ac91ddbc0c 100644
--- a/addons/crm_iap_lead/models/__init__.py
+++ b/addons/crm_iap_lead/models/__init__.py
@@ -4,3 +4,4 @@ from . import crm_lead
from . import crm_iap_lead
from . import crm_iap_lead_helpers
from . import crm_iap_lead_mining_request
+from . import ir_model_fields
diff --git a/addons/crm_iap_lead/models/ir_model_fields.py b/addons/crm_iap_lead/models/ir_model_fields.py
new file mode 100644
index 00000000000..06a7fb6eeb0
--- /dev/null
+++ b/addons/crm_iap_lead/models/ir_model_fields.py
@@ -0,0 +1,18 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details
+
+from odoo import models
+
+
+class IrModelFields(models.Model):
+ _inherit = 'ir.model.fields'
+
+ def unlink(self):
+ # Nasty hack to prevent the deletion of shared field reveal_id
+ self = self.filtered(
+ lambda rec: not (
+ rec.model == 'crm.lead'
+ and rec.name == 'reveal_id'
+ )
+ )
+ return super(IrModelFields, self).unlink()
diff --git a/addons/crm_iap_lead_enrich/models/__init__.py b/addons/crm_iap_lead_enrich/models/__init__.py
index dcb5aa3d8a4..f1f911179a4 100644
--- a/addons/crm_iap_lead_enrich/models/__init__.py
+++ b/addons/crm_iap_lead_enrich/models/__init__.py
@@ -4,3 +4,4 @@
from . import crm_lead
from . import iap_enrich_api
from . import res_config_settings
+from . import ir_model_fields
diff --git a/addons/crm_iap_lead_enrich/models/ir_model_fields.py b/addons/crm_iap_lead_enrich/models/ir_model_fields.py
new file mode 100644
index 00000000000..06a7fb6eeb0
--- /dev/null
+++ b/addons/crm_iap_lead_enrich/models/ir_model_fields.py
@@ -0,0 +1,18 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details
+
+from odoo import models
+
+
+class IrModelFields(models.Model):
+ _inherit = 'ir.model.fields'
+
+ def unlink(self):
+ # Nasty hack to prevent the deletion of shared field reveal_id
+ self = self.filtered(
+ lambda rec: not (
+ rec.model == 'crm.lead'
+ and rec.name == 'reveal_id'
+ )
+ )
+ return super(IrModelFields, self).unlink()