From 44221cffacda47a39cdf5f66f15f3d79b732c71b Mon Sep 17 00:00:00 2001 From: Jigar Vaghela Date: Mon, 9 Sep 2019 13:20:02 +0000 Subject: [PATCH] [FIX] base_address_extended: Fix cache miss bug Before this commit: -The company have 3 street fields have separate inverse method this all method is update same partner fields -Partner also has same 3 street fields but have the same inverse method for all street fields -Now the problem is when user company street inverse call then partner inverse also call at that time partner inverse try to access other street fields that not available in a cache so an error occurred. After this commit: -Company 3 street fields have the same inverse method so no cache problem when accessing all street fields in partner inverse method task-2068145 Closes #36568 Signed-off-by: Josse Colpaert --- .../models/base_address_extended.py | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 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..83b27f35374 100644 --- a/addons/base_address_extended/models/base_address_extended.py +++ b/addons/base_address_extended/models/base_address_extended.py @@ -152,11 +152,11 @@ class Company(models.Model): _inherit = 'res.company' street_name = fields.Char('Street Name', compute='_compute_address', - inverse='_inverse_street_name') + inverse='_inverse_street') street_number = fields.Char('House Number', compute='_compute_address', - inverse='_inverse_street_number') + inverse='_inverse_street') street_number2 = fields.Char('Door Number', compute='_compute_address', - inverse='_inverse_street_number2') + inverse='_inverse_street') def _get_company_address_fields(self, partner): address_fields = super(Company, self)._get_company_address_fields(partner) @@ -167,14 +167,10 @@ class Company(models.Model): }) return address_fields - def _inverse_street_name(self): + def _inverse_street(self): for company in self: - company.partner_id.street_name = company.street_name - - def _inverse_street_number(self): - for company in self: - company.partner_id.street_number = company.street_number - - def _inverse_street_number2(self): - for company in self: - company.partner_id.street_number2 = company.street_number2 + company.partner_id.write({ + 'street_name': company.street_name, + 'street_number': company.street_number, + 'street_number2': company.street_number2 + })