diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 123af3a6050..948c34a20b5 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2056,11 +2056,20 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({ if (values.length > self.limit) { values = values.slice(0, self.limit); values.push({label: _t("   Search More..."), action: function() { - dataset.name_search(search_val, self.build_domain(), 'ilike' - , false, function(data) { + if (search_val.length == 0) { + // search optimisation - in case user didn't enter any text we + // do not need to prefilter records; for big datasets (ex: more + // that 10.000 records) calling name_search() could be very very + // expensive! self._change_int_value(null); - self._search_create_popup("search", data); - }); + self._search_create_popup("search", undefined); + } else { + dataset.name_search(search_val, self.build_domain(), 'ilike' + , false, function(data) { + self._change_int_value(null); + self._search_create_popup("search", data); + }); + } }}); } // quick create