diff options
| author | Goffin Simon <sig@odoo.com> | 2020-03-31 10:02:37 +0000 |
|---|---|---|
| committer | Goffin Simon <sig@odoo.com> | 2020-04-02 06:37:06 +0000 |
| commit | 2a184ae62c330024820bf4e27ba512e85e89ce7c (patch) | |
| tree | 7becbc1f0d703a687ab136bcc17e7d76ad199a51 /addons/crm_iap_lead | |
| parent | 7e2504ec0c9d8305bcdeb1e68a64054d84d74124 (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>
Diffstat (limited to 'addons/crm_iap_lead')
| -rw-r--r-- | addons/crm_iap_lead/models/__init__.py | 1 | ||||
| -rw-r--r-- | addons/crm_iap_lead/models/ir_model_fields.py | 18 |
2 files changed, 19 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() |
