diff options
| author | Thibault Delavallée <tde@odoo.com> | 2020-01-07 13:37:34 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2020-01-07 14:45:48 +0000 |
| commit | 7943b71af39bdd5eeae2dcf84c8faf8aa56a2232 (patch) | |
| tree | 428e7cef0985418ce5ad7d2960963707bd31bee7 /addons/base_address_extended | |
| parent | e582500c4bd316711d55948d0cb820bd7f71d34a (diff) | |
[FIX] base(_address_extended): correctly update company street information at write
Currently when writing on street field of company model, its sub-fields
(notably street_name, street_number and street_number2) are not correctly
computed again in cache.
Indeed address sub fields have no direct trigger as it depends on its
partner_id and its partner_id children (see ``res_partner.address_get()`` and
``res_company._compute_address()``).
When writing on address fields from the company record, we then invalidate
all address fields cache in order to force their computation.
This commit adds a new tool method giving the list of fields coming from the
address partner to copy upon the company.
Task ID 2158302
PR #42678
Diffstat (limited to 'addons/base_address_extended')
| -rw-r--r-- | addons/base_address_extended/models/base_address_extended.py | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/addons/base_address_extended/models/base_address_extended.py b/addons/base_address_extended/models/base_address_extended.py index 173e45abb3d..5f5a9c643ef 100644 --- a/addons/base_address_extended/models/base_address_extended.py +++ b/addons/base_address_extended/models/base_address_extended.py @@ -158,14 +158,9 @@ class Company(models.Model): street_number2 = fields.Char('Door Number', compute='_compute_address', inverse='_inverse_street_number2') - def _get_company_address_fields(self, partner): - address_fields = super(Company, self)._get_company_address_fields(partner) - address_fields.update({ - 'street_name': partner.street_name, - 'street_number': partner.street_number, - 'street_number2': partner.street_number2, - }) - return address_fields + def _get_company_address_field_names(self): + fields_matching = super(Company, self)._get_company_address_field_names() + return list(set(fields_matching + ['street_name', 'street_number', 'street_number2'])) def _inverse_street_name(self): for company in self: |
