summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/auth_signup/models/__init__.py1
-rw-r--r--addons/auth_signup/models/ir_model_fields.py19
-rw-r--r--addons/sale/models/__init__.py1
-rw-r--r--addons/sale/models/ir_model_fields.py19
-rw-r--r--addons/website/models/ir_model_fields.py11
5 files changed, 45 insertions, 6 deletions
diff --git a/addons/auth_signup/models/__init__.py b/addons/auth_signup/models/__init__.py
index 44dc1ee6b11..a25160266e7 100644
--- a/addons/auth_signup/models/__init__.py
+++ b/addons/auth_signup/models/__init__.py
@@ -4,3 +4,4 @@ from . import res_config_settings
from . import ir_http
from . import res_partner
from . import res_users
+from . import ir_model_fields
diff --git a/addons/auth_signup/models/ir_model_fields.py b/addons/auth_signup/models/ir_model_fields.py
new file mode 100644
index 00000000000..828b9de8346
--- /dev/null
+++ b/addons/auth_signup/models/ir_model_fields.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details
+
+from odoo import models
+
+
+# This is a nasty hack, targeted for V11 only
+class IrModelFields(models.Model):
+ _inherit = 'ir.model.fields'
+
+ def unlink(self):
+ # Prevent the deletion of some `shared` fields... -_-
+ self = self.filtered(
+ lambda rec: not (
+ rec.model == 'res.config.settings'
+ and rec.name == 'auth_signup_uninvited'
+ )
+ )
+ return super(IrModelFields, self).unlink()
diff --git a/addons/sale/models/__init__.py b/addons/sale/models/__init__.py
index 5f6e7ba2857..7a157566790 100644
--- a/addons/sale/models/__init__.py
+++ b/addons/sale/models/__init__.py
@@ -12,3 +12,4 @@ from . import sale
from . import res_config_settings
from . import sale_layout
from . import sales_team
+from . import ir_model_fields
diff --git a/addons/sale/models/ir_model_fields.py b/addons/sale/models/ir_model_fields.py
new file mode 100644
index 00000000000..828b9de8346
--- /dev/null
+++ b/addons/sale/models/ir_model_fields.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details
+
+from odoo import models
+
+
+# This is a nasty hack, targeted for V11 only
+class IrModelFields(models.Model):
+ _inherit = 'ir.model.fields'
+
+ def unlink(self):
+ # Prevent the deletion of some `shared` fields... -_-
+ self = self.filtered(
+ lambda rec: not (
+ rec.model == 'res.config.settings'
+ and rec.name == 'auth_signup_uninvited'
+ )
+ )
+ return super(IrModelFields, self).unlink()
diff --git a/addons/website/models/ir_model_fields.py b/addons/website/models/ir_model_fields.py
index 1e963bf650e..51f5c2a7dc5 100644
--- a/addons/website/models/ir_model_fields.py
+++ b/addons/website/models/ir_model_fields.py
@@ -1,17 +1,15 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details
-from odoo import api, models
+from odoo import models
# This is a nasty hack, targeted for V11 only
class IrModelFields(models.Model):
_inherit = 'ir.model.fields'
- @api.multi
def unlink(self):
- # Prevent the deletion of social_* fields defined in res.company if
- # the other module is installed
+ # Prevent the deletion of some `shared` fields... -_-
social = (
'social_facebook',
'social_github',
@@ -23,8 +21,9 @@ class IrModelFields(models.Model):
self = self.filtered(
lambda rec: not (
- rec.model == 'res.company' and
- rec.name in social
+ (rec.model == 'res.company' and rec.name in social)
+ or (rec.model == 'res.config.settings'
+ and rec.name == 'auth_signup_uninvited')
)
)
return super(IrModelFields, self).unlink()