From 95f3fcf0f5f81ffd8aa8982a5374a0e0f1a88884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 20 Apr 2011 20:01:24 +0200 Subject: [PATCH] Manage force_remove at screen level and unremove all selected records --- tryton/gui/window/form.py | 2 +- tryton/gui/window/view_form/screen/screen.py | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/tryton/gui/window/form.py b/tryton/gui/window/form.py index 233eec985a..7f973a4249 100644 --- a/tryton/gui/window/form.py +++ b/tryton/gui/window/form.py @@ -297,7 +297,7 @@ class Form(SignalEvent): else: msg = _('Are you sure to remove those records?') if sur(msg, self.window): - if not self.screen.remove(delete=True): + if not self.screen.remove(delete=True, force_remove=True): self.message_info(_('Records not removed!')) else: self.message_info(_('Records removed!'), 'green') diff --git a/tryton/gui/window/view_form/screen/screen.py b/tryton/gui/window/view_form/screen/screen.py index 8614aa8cea..d594b3f7c0 100644 --- a/tryton/gui/window/view_form/screen/screen.py +++ b/tryton/gui/window/view_form/screen/screen.py @@ -519,10 +519,11 @@ class Screen(SignalEvent): self.request_set() def unremove(self): - if self.current_record in self.group: - self.group.unremove(self.current_record) + records = self.current_view.selected_records() + for record in records: + self.group.unremove(record) - def remove(self, delete=False, remove=False): + def remove(self, delete=False, remove=False, force_remove=False): res = False reload_ids = [] if self.current_view.view_type == 'form' and self.current_record: @@ -597,7 +598,7 @@ class Screen(SignalEvent): # to save the previous_model as it can be already deleted. self.current_record = None record.group.remove(record, remove=remove, signal=False, - force_remove=True) + force_remove=force_remove) # send record-changed only once record.signal('record-changed')