From be4aba7d8f6dccd1ab7e1152d8c00378b69359fe Mon Sep 17 00:00:00 2001 From: Darshan Kalola Date: Mon, 19 Aug 2013 14:13:04 +0530 Subject: [PATCH 1/6] [IMP]improve onchange behaviour when creating partner or contact bzr revid: darshankalola@gmail.com-20130819084304-5jxrvmu8on3fzm2j --- openerp/addons/base/res/res_partner_view.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml index f02021313c0..a032ecfe4db 100644 --- a/openerp/addons/base/res/res_partner_view.xml +++ b/openerp/addons/base/res/res_partner_view.xml @@ -140,8 +140,7 @@ + attrs="{'invisible': [('is_company','=', True),('parent_id', '=', False)]}"/>
@@ -188,7 +187,7 @@ - + From 15906b31fbbfb93b8a27520247e4dd9be2776cb9 Mon Sep 17 00:00:00 2001 From: Darshan Kalola Date: Thu, 29 Aug 2013 16:39:55 +0530 Subject: [PATCH 2/6] [IMP]clear address when use_parent_address is set to false bzr revid: dka@tinyerp.com-20130829110955-9eh0b2x0d4d24b8b --- 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 97b0ac454ae..54e61101909 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -379,7 +379,10 @@ class res_partner(osv.osv, format_address): 'company. You can use the "Discard" button to abandon this change.')} parent = self.browse(cr, uid, parent_id, context=context) address_fields = self._address_fields(cr, uid, context=context) - result['value'] = dict((key, value_or_id(parent[key])) for key in address_fields) + if use_parent_address: + result['value'] = dict((key, value_or_id(parent[key])) for key in address_fields) + else: + result['value'] = dict((key,None) for key in address_fields) else: result['value'] = {'use_parent_address': False} return result From 8fdc129f5613bd3ba025afafe5514909fac7c2f4 Mon Sep 17 00:00:00 2001 From: "Darshan Kalola (OpenERP)" Date: Tue, 24 Sep 2013 16:22:03 +0530 Subject: [PATCH 3/6] [IMP]Improve onchange behave with seperate onchange method for use parent address. bzr revid: dka@tinyerp.com-20130924105203-6nq2755rdfscs6kb --- openerp/addons/base/res/res_partner.py | 18 ++++++++++++++---- openerp/addons/base/res/res_partner_view.xml | 9 +++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py index 54e61101909..39e070e018b 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -358,11 +358,25 @@ class res_partner(osv.osv, format_address): value = {} value['title'] = False if is_company: + value['use_parent_address'] = False domain = {'title': [('domain', '=', 'partner')]} else: domain = {'title': [('domain', '=', 'contact')]} return {'value': value, 'domain': domain} + def onchange_use_address(self, cr, uid, ids, use_parent_address, parent_id, context=None): + def value_or_id(val): + """ return val or val.id if val is a browse record """ + return val if isinstance(val, (bool, int, long, float, basestring)) else val.id + result = {} + address_fields = self._address_fields(cr, uid, context=context) + if parent_id and use_parent_address: + parent = self.browse(cr, uid, parent_id, context=context) + result['value'] = dict((key, value_or_id(parent[key])) for key in address_fields) + else: + result['value'] = dict((key,"") for key in address_fields) + return result + def onchange_address(self, cr, uid, ids, use_parent_address, parent_id, context=None): def value_or_id(val): """ return val or val.id if val is a browse record """ @@ -381,10 +395,6 @@ class res_partner(osv.osv, format_address): address_fields = self._address_fields(cr, uid, context=context) if use_parent_address: result['value'] = dict((key, value_or_id(parent[key])) for key in address_fields) - else: - result['value'] = dict((key,None) for key in address_fields) - else: - result['value'] = {'use_parent_address': False} return result def onchange_state(self, cr, uid, ids, state_id, context=None): diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml index a032ecfe4db..28d51bd1917 100644 --- a/openerp/addons/base/res/res_partner_view.xml +++ b/openerp/addons/base/res/res_partner_view.xml @@ -140,7 +140,8 @@ + attrs="{'invisible': [('is_company','=', True),('parent_id', '=', False)]}" + on_change="onchange_address(use_parent_address, parent_id)"/>
@@ -156,9 +157,9 @@