diff --git a/tryton/gui/window/view_form/screen/screen.py b/tryton/gui/window/view_form/screen/screen.py index 570f9feeea..8d61ddaa02 100644 --- a/tryton/gui/window/view_form/screen/screen.py +++ b/tryton/gui/window/view_form/screen/screen.py @@ -50,8 +50,7 @@ class Screen(SignalEvent): self.parent_name = None self.__window = window self.__group = None - self.group = Group(model_name, {}, self.window, context=self.context, - readonly=readonly) + self.new_group() self.__current_record = None self.current_record = None self.screen_container = ScreenContainer() @@ -178,6 +177,10 @@ class Screen(SignalEvent): group = property(__get_group, __set_group) + def new_group(self, readonly=False): + self.group = Group(self.model_name, {}, self.window, + context=self.context, readonly=readonly) + def _group_cleared(self, group, signal): for view in self.views: if hasattr(view, 'reload'): 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 9f1bcb07a1..948ecffbd2 100644 --- a/tryton/gui/window/view_form/view/form_gtk/many2many.py +++ b/tryton/gui/window/view_form/view/form_gtk/many2many.py @@ -151,7 +151,9 @@ class Many2Many(WidgetInterface): def display(self, record, field): super(Many2Many, self).display(record, field) if field is None: + self.screen.new_group() self.screen.current_record = None + self.screen.parent = True self.screen.display() return False new_group = field.get_client(record) 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 d41cbef0af..e106b27e08 100644 --- a/tryton/gui/window/view_form/view/form_gtk/one2many.py +++ b/tryton/gui/window/view_form/view/form_gtk/one2many.py @@ -5,7 +5,6 @@ import gettext from tryton.common import TRYTON_ICON, COLOR_SCHEMES from interface import WidgetInterface from tryton.gui.window.view_form.screen import Screen -from tryton.gui.window.view_form.model.group import Group from tryton.gui.window.win_search import WinSearch from tryton.gui.window.win_form import WinForm from tryton.gui.window.view_form.widget_search.form import _LIMIT @@ -324,7 +323,9 @@ class One2Many(WidgetInterface): def display(self, record, field): super(One2Many, self).display(record, field) if field is None: + self.screen.new_group() self.screen.current_record = None + self.screen.parent = True self.screen.display() return False new_group = field.get_client(record)