diff --git a/partner_multi_relation_tabs/models/res_partner.py b/partner_multi_relation_tabs/models/res_partner.py index cdf99b4a9..eed5071b6 100644 --- a/partner_multi_relation_tabs/models/res_partner.py +++ b/partner_multi_relation_tabs/models/res_partner.py @@ -15,11 +15,12 @@ class ResPartner(models.Model): @api.multi def browse(self, arg=None, prefetch=None): - for tab in self._get_tabs(): - fieldname = tab.get_fieldname() - if fieldname not in self._fields: - # Check this for performance reasons. - self.add_field(tab) + if "update_relation_tab" in self.env.context: + for tab in self._get_tabs(): + fieldname = tab.get_fieldname() + if fieldname not in self._fields: + # Check this for performance reasons. + self.add_field(tab) return super(ResPartner, self).browse(arg=arg, prefetch=prefetch) @api.model @@ -71,10 +72,11 @@ class ResPartner(models.Model): @api.depends('is_company', 'category_id') def _compute_tabs_visibility(self): """Compute for all tabs wether they should be visible.""" - for tab in self._get_tabs(): # get all tabs - for this in self: - this[tab.get_visible_fieldname()] = \ - tab.compute_visibility(this) + if "update_relation_tab" in self.env.context: + for tab in self._get_tabs(): # get all tabs + for this in self: + this[tab.get_visible_fieldname()] = \ + tab.compute_visibility(this) def _get_tabs(self): tab_model = self.env['res.partner.tab'] diff --git a/partner_multi_relation_tabs/tests/test_partner_tabs.py b/partner_multi_relation_tabs/tests/test_partner_tabs.py index 0b56b1261..a91a98b2c 100644 --- a/partner_multi_relation_tabs/tests/test_partner_tabs.py +++ b/partner_multi_relation_tabs/tests/test_partner_tabs.py @@ -140,7 +140,9 @@ class TestPartnerTabs(common.TestCommon): def test_compute_visibility(self): """Check the computation of visibility on partners.""" # pylint: disable=protected-access - main_partner = self.env.ref('base.main_partner') + main_partner = self.env.ref('base.main_partner').with_context({ + 'update_relation_tab': 1 + }) main_partner._compute_tabs_visibility() tab_obj = Tab(self.tab_departments) fieldname = tab_obj.get_fieldname() diff --git a/partner_multi_relation_tabs/views/menu.xml b/partner_multi_relation_tabs/views/menu.xml index 97eb9caac..16050f6c8 100644 --- a/partner_multi_relation_tabs/views/menu.xml +++ b/partner_multi_relation_tabs/views/menu.xml @@ -1,5 +1,8 @@ + + {'update_relation_tab': 1} +