From 9af99b6000a3bcc560857f95dc1ac0a6a7a9b72a Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Thu, 8 Aug 2013 18:13:39 +0200 Subject: [PATCH 1/2] [FIX] only descend to children when necessary lp bug: https://launchpad.net/bugs/1210186 fixed bzr revid: hbrunn@therp.nl-20130808161339-7y5dtwacb1ed7fcp --- openerp/addons/base/res/res_partner.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py index 92414e764f3..5eb9ebf2fba 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -465,7 +465,10 @@ class res_partner(osv.osv, format_address): # 2. To DOWNSTREAM: sync children if partner.child_ids: # 2a. Commercial Fields: sync if commercial entity - if partner.commercial_partner_id == partner: + if partner.commercial_partner_id == partner and any( + field in update_values + for field in self._commercial_fields( + cr, uid, context=context)): self._commercial_sync_to_children(cr, uid, partner, context=context) # 2b. Address fields: sync if address changed address_fields = self._address_fields(cr, uid, context=context) From 89851d6108cec11528e5bf430c4d2343013de21a Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Thu, 8 Aug 2013 20:18:06 +0200 Subject: [PATCH 2/2] [IMP] improve readability bzr revid: hbrunn@therp.nl-20130808181806-mdsrcltl8r526sr6 --- openerp/addons/base/res/res_partner.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py index 5eb9ebf2fba..af7fcfa7c49 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -465,11 +465,12 @@ class res_partner(osv.osv, format_address): # 2. To DOWNSTREAM: sync children if partner.child_ids: # 2a. Commercial Fields: sync if commercial entity - if partner.commercial_partner_id == partner and any( - field in update_values - for field in self._commercial_fields( - cr, uid, context=context)): - self._commercial_sync_to_children(cr, uid, partner, context=context) + if partner.commercial_partner_id == partner: + commercial_fields = self._commercial_fields(cr, uid, + context=context) + if any(field in update_values for field in commercial_fields): + self._commercial_sync_to_children(cr, uid, partner, + context=context) # 2b. Address fields: sync if address changed address_fields = self._address_fields(cr, uid, context=context) if any(field in update_values for field in address_fields):