diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index 6e2f3f8397f..9fc268ad04d 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -1477,7 +1477,7 @@ instance.web.search.SelectionField = instance.web.search.Field.extend(/** @lends var results = _(this.attrs.selection).chain() .filter(function (sel) { var value = sel[0], label = sel[1]; - if (!value) { return false; } + if (value === undefined || !label) { return false; } return label.toLowerCase().indexOf(needle.toLowerCase()) !== -1; }) .map(function (sel) { diff --git a/openerp/addons/base/res/res_currency.py b/openerp/addons/base/res/res_currency.py index 1419cc7ccb4..0755e8a16f5 100644 --- a/openerp/addons/base/res/res_currency.py +++ b/openerp/addons/base/res/res_currency.py @@ -260,6 +260,25 @@ class res_currency_rate(osv.osv): } _order = "name desc" + def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80): + if operator in ['=', '!=']: + try: + date_format = '%Y-%m-%d' + if context.get('lang'): + lang_obj = self.pool['res.lang'] + lang_ids = lang_obj.search(cr, user, [('code', '=', context['lang'])], context=context) + if lang_ids: + date_format = lang_obj.browse(cr, user, lang_ids[0], context=context).date_format + name = time.strftime('%Y-%m-%d', time.strptime(name, date_format)) + except ValueError: + try: + args.append(('rate', operator, float(name))) + except ValueError: + return [] + name = '' + operator = 'ilike' + return super(res_currency_rate, self).name_search(cr, user, name, args=args, operator=operator, context=context, limit=limit) + res_currency_rate() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: