diff --git a/addons/base_contact/base_contact.py b/addons/base_contact/base_contact.py index cf0bc610be8..8be20109591 100644 --- a/addons/base_contact/base_contact.py +++ b/addons/base_contact/base_contact.py @@ -131,7 +131,7 @@ class res_partner_address(osv.osv): if not len(ids): return [] res = [] - if context is None: + if context is None: context = {} for r in self.read(cr, user, ids, ['zip', 'city', 'partner_id', 'street']): if context.get('contact_display', 'contact')=='partner' and r['partner_id']: @@ -143,6 +143,22 @@ class res_partner_address(osv.osv): res.append((r['id'], addr.strip() or '/')) return res + def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100): + if not args: + args=[] + if not context: + context={} + if name: + ids = [] + job_ids = self.pool.get('res.partner.job').search(cr, user, [('contact_id', operator, name)] + args, limit=limit, context=context) + partner_ids = self.pool.get('res.partner.job').browse(cr, user, job_ids) + partner_data = [(partner.name.name) for partner in partner_ids] + for partner in partner_data: + ids += self.search(cr, user, [('partner_id',operator,partner)] + args, limit=limit, context=context) + else: + ids = self.search(cr, user, args, limit=limit, context=context) + return self.name_get(cr, user, ids, context) + _name = 'res.partner.address' _inherit = 'res.partner.address' _description ='Partner Address' diff --git a/addons/base_contact/base_contact_view.xml b/addons/base_contact/base_contact_view.xml index 8029084b7c3..a65f107fb25 100644 --- a/addons/base_contact/base_contact_view.xml +++ b/addons/base_contact/base_contact_view.xml @@ -252,7 +252,20 @@ - + + + + + res.partner.select + search + res.partner + + + + + + + @@ -422,3 +435,4 @@ +