From ffdc2b68bbb41554c3a891b20d8ffaa552a7a675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 26 Mar 2022 13:00:03 +0100 Subject: [PATCH] Disable next/previous buttons depending on the record position issue11302 review388061002 --- tryton/gui/window/form.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/tryton/gui/window/form.py b/tryton/gui/window/form.py index e4c7c03a0d..cc6d4febf9 100644 --- a/tryton/gui/window/form.py +++ b/tryton/gui/window/form.py @@ -591,6 +591,12 @@ class Form(TabContent): popup(menu, widget) def record_message(self, position, size, max_size, record_id): + def set_sensitive(button_id, sensitive): + if button_id in self.buttons: + self.buttons[button_id].props.sensitive = sensitive + if button_id in self.menu_buttons: + self.menu_buttons[button_id].props.sensitive = sensitive + name = str(position) if position else '_' selected = len(self.screen.selected_records) if selected > 1: @@ -608,14 +614,11 @@ class Form(TabContent): for b in self.screen.get_buttons()) elif button_id == 'save': can_be_sensitive &= not self.screen.readonly - button.props.sensitive = bool(position) and can_be_sensitive - button_switch = self.buttons['switch'] - button_switch.props.sensitive = self.screen.number_of_views > 1 - - menu_delete = self.menu_buttons['remove'] - menu_delete.props.sensitive = self.screen.deletable - menu_save = self.menu_buttons['save'] - menu_save.props.sensitive = not self.screen.readonly + set_sensitive(button_id, bool(position) and can_be_sensitive) + set_sensitive('switch', self.screen.number_of_views > 1) + set_sensitive('remove', self.screen.deletable) + set_sensitive('previous', position > (self.screen.offset + 1)) + set_sensitive('next', position < size) if size < max_size: msg = "%s@%s/%s" % (