diff --git a/tryton/gui/window/view_form/view/form_gtk/many2many.py b/tryton/gui/window/view_form/view/form_gtk/many2many.py index 9b7eef1199..b885336fe3 100644 --- a/tryton/gui/window/view_form/view/form_gtk/many2many.py +++ b/tryton/gui/window/view_form/view/form_gtk/many2many.py @@ -71,8 +71,9 @@ class Many2Many(WidgetInterface): frame.set_shadow_type(gtk.SHADOW_OUT) self.widget.pack_start(frame, expand=False, fill=True) - self.screen = Screen(attrs['relation'], mode=['tree'], - views_preload=attrs.get('views', {}), + self.screen = Screen(attrs['relation'], + view_ids=attrs.get('view_ids').split(','), + mode=['tree'], views_preload=attrs.get('views', {}), row_activate=self._on_activate) self.screen.signal_connect(self, 'record-message', self._sig_label) @@ -150,8 +151,9 @@ class Many2Many(WidgetInterface): self.wid_text.set_text('') if len(ids) != 1 or not value: WinSearch(self.attrs['relation'], callback, sel_multi=True, - ids=ids, context=context, domain=domain, - views_preload=self.attrs.get('views', {})) + ids=ids, context=context, domain=domain, + views_ids=self.attrs.get('views_ids').split(','), + views_preload=self.attrs.get('views', {})) else: callback(ids) diff --git a/tryton/gui/window/view_form/view/form_gtk/many2one.py b/tryton/gui/window/view_form/view/form_gtk/many2one.py index 9f9b303939..700744cda8 100644 --- a/tryton/gui/window/view_form/view/form_gtk/many2one.py +++ b/tryton/gui/window/view_form/view/form_gtk/many2one.py @@ -160,6 +160,7 @@ class Many2One(WidgetInterface): WinSearch(model, callback, sel_multi=False, ids=ids, context=context, domain=domain, + view_ids=self.attrs.get('view_ids').split(','), views_preload=self.attrs.get('views', {})) return self.focus_out = True @@ -171,8 +172,8 @@ class Many2One(WidgetInterface): domain = self.field.domain_get(self.record) context = self.field.context_get(self.record) return Screen(self.get_model(), domain=domain, context=context, - mode=['form'], views_preload=self.attrs.get('views', {}), - readonly=self._readonly) + mode=['form'], view_ids=self.attrs.get('view_ids').split(','), + views_preload=self.attrs.get('views', {}), readonly=self._readonly) def sig_new(self, *args): self.focus_out = False @@ -249,6 +250,7 @@ class Many2One(WidgetInterface): self.changed = True WinSearch(model, callback, sel_multi=False, ids=ids, context=context, domain=domain, + view_ids=self.attrs.get('view_ids').split(','), views_preload=self.attrs.get('views', {})) return self.focus_out = True 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 992129698a..42ad8c7767 100644 --- a/tryton/gui/window/view_form/view/form_gtk/one2many.py +++ b/tryton/gui/window/view_form/view/form_gtk/one2many.py @@ -158,6 +158,7 @@ class One2Many(WidgetInterface): self.screen = Screen(attrs['relation'], mode=attrs.get('mode', 'tree,form').split(','), + view_ids=attrs.get('view_ids', '').split(','), views_preload=attrs.get('views', {}), row_activate=self._on_activate, exclude_field=attrs.get('relation_field', None)) @@ -332,6 +333,7 @@ class One2Many(WidgetInterface): if len(ids) != 1: WinSearch(self.attrs['relation'], callback, sel_multi=True, ids=ids, context=context, domain=domain, + view_ids=self.attrs.get('view_ids', '').split(','), views_preload=self.attrs.get('views', {})) else: callback(ids) diff --git a/tryton/gui/window/win_form.py b/tryton/gui/window/win_form.py index 78f2b57fff..9212e1a939 100644 --- a/tryton/gui/window/win_form.py +++ b/tryton/gui/window/win_form.py @@ -281,7 +281,9 @@ class WinForm(NoModal): if len(ids) != 1: WinSearch(model_name, callback, sel_multi=True, - ids=ids, context=context, domain=domain) + ids=ids, context=context, domain=domain, + view_ids=self.attrs.get('view_ids').split(','), + views_preload=self.attrs.get('views', {})) else: callback(ids) diff --git a/tryton/gui/window/win_search.py b/tryton/gui/window/win_search.py index 87ef2c4ddf..1ee69d4830 100644 --- a/tryton/gui/window/win_search.py +++ b/tryton/gui/window/win_search.py @@ -14,7 +14,7 @@ _ = gettext.gettext class WinSearch(NoModal): def __init__(self, model, callback, sel_multi=True, ids=None, context=None, - domain=None, views_preload=None): + domain=None, view_ids=None, views_preload=None): NoModal.__init__(self) if views_preload is None: views_preload = {} @@ -50,7 +50,7 @@ class WinSearch(NoModal): self.win.vbox.pack_start(scrollwindow, expand=True, fill=True) self.screen = Screen(model, domain=domain, mode=['tree'], - context=context, views_preload=views_preload, + context=context, view_ids=view_ids, views_preload=views_preload, row_activate=self.sig_activate) self.view = self.screen.current_view self.view.unset_editable()