diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-05-09 21:07:44 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-05-09 21:07:44 +0200 |
| commit | cc3a2c1bf3c8aa2a7f85b5c2f8eb4e9415f3e6c7 (patch) | |
| tree | f97b6171e54f052126a1fad2f55a33c603e18bef /odoo/addons/base/models | |
| parent | 92cb648882082cc8d84d3bbe75304def5196998c (diff) | |
| parent | e11bacfe512a3170f44d6d43646af914a9cf3b73 (diff) | |
[MERGE] forward port branch 12.0 up to e11bacfe512
Diffstat (limited to 'odoo/addons/base/models')
| -rw-r--r-- | odoo/addons/base/models/ir_model.py | 16 | ||||
| -rw-r--r-- | odoo/addons/base/models/res_partner.py | 9 |
2 files changed, 18 insertions, 7 deletions
diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py index 089204dda5f..41f013b3ccf 100644 --- a/odoo/addons/base/models/ir_model.py +++ b/odoo/addons/base/models/ir_model.py @@ -639,11 +639,17 @@ class IrModelFields(models.Model): for view in views: view._check_xml() except Exception: - raise UserError("\n".join([ - _("Cannot rename/delete fields that are still present in views:"), - _("Fields: %s") % ", ".join(str(f) for f in fields), - _("View: %s") % view.name, - ])) + if not self._context.get(MODULE_UNINSTALL_FLAG): + raise UserError("\n".join([ + _("Cannot rename/delete fields that are still present in views:"), + _("Fields: %s") % ", ".join(str(f) for f in fields), + _("View: %s") % view.name, + ])) + else: + # uninstall mode + _logger.warn("The following fields were force-deleted to prevent a registry crash " + + ", ".join(str(f) for f in fields) + + " the following view might be broken %s" % view.name) finally: # the registry has been modified, restore it self.pool.setup_models(self._cr) diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py index 646d429d19e..0900d46895f 100644 --- a/odoo/addons/base/models/res_partner.py +++ b/odoo/addons/base/models/res_partner.py @@ -443,6 +443,11 @@ class Partner(models.Model): """Returns the list of address fields that are synced from the parent.""" return list(ADDRESS_FIELDS) + @api.model + def _formatting_address_fields(self): + """Returns the list of address fields usable to format addresses.""" + return self._address_fields() + @api.multi def update_address(self, vals): addr_vals = {key: vals[key] for key in self._address_fields() if key in vals} @@ -914,7 +919,7 @@ class Partner(models.Model): 'country_name': self._get_country_name(), 'company_name': self.commercial_company_name or '', } - for field in self._address_fields(): + for field in self._formatting_address_fields(): args[field] = getattr(self, field) or '' if without_company: args['company_name'] = '' @@ -924,7 +929,7 @@ class Partner(models.Model): def _display_address_depends(self): # field dependencies of method _display_address() - return self._address_fields() + [ + return self._formatting_address_fields() + [ 'country_id.address_format', 'country_id.code', 'country_id.name', 'company_name', 'state_id.code', 'state_id.name', ] |
