diff --git a/tryton/gui/window/view_form/model/field.py b/tryton/gui/window/view_form/model/field.py index 3d0a969f05..89bb4bfe7f 100644 --- a/tryton/gui/window/view_form/model/field.py +++ b/tryton/gui/window/view_form/model/field.py @@ -509,6 +509,9 @@ class O2MField(CharField): else: model.value[self.name].readonly = False + def get_removed_ids(self, model): + return model.value[self.name].model_removed + class ReferenceField(CharField): diff --git a/tryton/gui/window/view_form/view/form_gtk/one2many.py b/tryton/gui/window/view_form/view/form_gtk/one2many.py index 122979a3a8..5657b433bf 100644 --- a/tryton/gui/window/view_form/view/form_gtk/one2many.py +++ b/tryton/gui/window/view_form/view/form_gtk/one2many.py @@ -592,10 +592,12 @@ class One2Many(WidgetInterface): domain = domain[:] domain.extend(self._view.model.expr_eval(self.attrs.get('add_remove'), context)) + removed_ids = self._view.modelfield.get_removed_ids(self._view.model) try: ids = rpc.execute('object', 'execute', self.attrs['relation'], - 'name_search', self.wid_text.get_text(), domain, 'ilike', + 'name_search', self.wid_text.get_text(), + ['OR', domain, ('id', 'in', removed_ids)], 'ilike', context, _LIMIT) except Exception, exception: common.process_exception(exception, self._window)