From b1643c7af602f7724e87867569ca047669d45d20 Mon Sep 17 00:00:00 2001 From: "olt@tinyerp.com" <> Date: Mon, 1 Feb 2010 08:58:52 +0100 Subject: [PATCH] [FIX] base_contact: search in "Contact's Jobs" now also search in firstname and lastname of contacts bzr revid: olt@tinyerp.com-20100201075852-eomf4z7an0rno10r --- addons/base_contact/base_contact.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/addons/base_contact/base_contact.py b/addons/base_contact/base_contact.py index ab42ba94571..ca4fb93bced 100644 --- a/addons/base_contact/base_contact.py +++ b/addons/base_contact/base_contact.py @@ -114,17 +114,29 @@ class res_partner_job(osv.osv): res = [] for r in self.browse(cr, uid, ids): funct = r.function_id and (", " + r.function_id.name) or "" - res.append((r.id, self.pool.get('res.partner.contact').name_get(cr, uid, [r.contact_id.id])[0][1] + funct )) + res.append((r.id, self.pool.get('res.partner.contact').name_get(cr, uid, [r.contact_id.id])[0][1] + funct)) return res - def search(self, cr, user, args, offset=0, limit=None, order=None, - context=None, count=False): + def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False): + job_ids = [] for arg in args: - if arg[0]=='address_id': + if arg[0] == 'address_id': self._order = 'sequence_partner' - if arg[0]=='contact_id': + elif arg[0] == 'contact_id': self._order = 'sequence_contact' - return super(res_partner_job,self).search(cr, user, args, offset, limit, order, context, count) + elif arg[0] == 'name': + contact_obj = self.pool.get('res.partner.contact') + search_arg = ['|', ('first_name', 'ilike', arg[2]), ('name', 'ilike', arg[2])] + contact_ids = contact_obj.search(cr, user, search_arg, offset=offset, limit=limit, order=order, context=context, count=count) + contacts = contact_obj.browse(cr, user, contact_ids, context=context) + for contact in contacts: + job_ids.extend([item.id for item in contact.job_ids]) + + res = super(res_partner_job,self).search(cr, user, args, offset=offset, limit=limit, order=order, context=context, count=count) + if job_ids: + res = list(set(res + job_ids)) + + return res _name = 'res.partner.job' _description ='Contact Partner Function'