diff options
| author | Christophe Simonis <chs@odoo.com> | 2017-10-18 14:34:32 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2017-10-18 14:34:32 +0200 |
| commit | a01e76efa71d4db2fa9de0095d13bdfc359f91f0 (patch) | |
| tree | 87203bc32cbf3d0ef4b794f72b22065f62b5c7f9 /addons/website_quote | |
| parent | 727a642f5c72ee34e9d6f3c7a507591d05d7d839 (diff) | |
| parent | 2198220947e4334aba85e782665870ff37ea7736 (diff) | |
[MERGE] forward port branch 10.0 up to 2198220947e
Diffstat (limited to 'addons/website_quote')
| -rw-r--r-- | addons/website_quote/models/__init__.py | 1 | ||||
| -rw-r--r-- | addons/website_quote/models/ir_model_fields.py | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/addons/website_quote/models/__init__.py b/addons/website_quote/models/__init__.py index 011bafd821f..a83051f5a10 100644 --- a/addons/website_quote/models/__init__.py +++ b/addons/website_quote/models/__init__.py @@ -4,3 +4,4 @@ import sale_order import sale_quote import product_template +import ir_model_fields diff --git a/addons/website_quote/models/ir_model_fields.py b/addons/website_quote/models/ir_model_fields.py new file mode 100644 index 00000000000..55643edfe0d --- /dev/null +++ b/addons/website_quote/models/ir_model_fields.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, models + +# !! Attention, this is a hack of a hack, do not try this at home !! +# This is done because website_quote defines the website_description +# field which is also defined by website_sale, but these two modules +# are independent of each other, the part of the ORM that generates +# xmlids does not support this case therefore it only creates a single +# pair of xmlids for whichever module is installed first, therefore +# when uninstalling any of the two modules the website_descripion field +# will be deleted from the db and the other module won't be able to +# use this field, resulting in a crash and data-loss. +# See opw-776464 for more details. +# +# This is hotfixed by overriding the unlink method so as to not delete +# the website_description field if website_quote is uninstalled, it's +# an ugly hack but it works and big changes can't be done to the ORM +# in stable versions, Odoo v12+ will properly fix this + + +class IrModelFields(models.Model): + _inherit = "ir.model.fields" + + @api.multi + def unlink(self): + # Prevent the deletion of the field "website_description" + self = self.filtered( + lambda rec: not ( + rec.model in ('product.product', 'product.template') and + rec.name == 'website_description' + ) + ) + return super(IrModelFields, self).unlink() |
