From ff28e09432538ca1e4f0ac3773e2d1c7f3a8940c Mon Sep 17 00:00:00 2001 From: jke-openerp Date: Tue, 29 Oct 2013 09:35:51 +0100 Subject: [PATCH] [IMP] Add name search on stock.stock_location to allow the search of child bzr revid: jke@openerp.com-20131029083551-mbrx7hxoc9w78ogq --- addons/stock/stock.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 90b4de4d671..b924f3d3d53 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -61,7 +61,27 @@ class stock_location(osv.osv): _parent_order = 'name' _order = 'parent_left' - # TODO: implement name_search() in a way that matches the results of name_get! + def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100): + if not args: + args=[] + if context is None: + context={} + + if name: + ids = self.search(cr, uid, [('complete_name', operator, name)] + args, limit=limit, context=context) + if not ids: + dom = [] + for name2 in name.split('/'): + name = name2.strip() + ids = self.search(cr, uid, dom + [('name', 'ilike', name)] + args, limit=limit, context=context) + if not ids: + break + dom = [('location_id','in',ids)] + else: + ids = self.search(cr, uid, args, limit=limit, context=context) + return self.name_get(cr, uid, ids, context=context) + + def name_get(self, cr, uid, ids, context=None): res = self._complete_name(cr, uid, ids, 'complete_name', None, context=context) return res.items()