changeset 0110eb3f3ddd in tryton:default
details: https://hg.tryton.org/tryton?cmd=changeset;node=0110eb3f3ddd
description:
Do not rely on current record from screen
If the current record is removed, the attribute is set to None by
cancel_current.
issue9298
review314651002
diffstat:
tryton/gui/window/win_form.py | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diffs (27 lines):
diff -r feb8125c72d2 -r 0110eb3f3ddd tryton/gui/window/win_form.py
--- a/tryton/gui/window/win_form.py Mon Oct 26 21:28:47 2020 +0100
+++ b/tryton/gui/window/win_form.py Wed Oct 28 00:02:52 2020 +0100
@@ -404,16 +404,17 @@
if (self.screen.current_record
and not readonly
and response_id in cancel_responses):
- added = 'id' in self.screen.current_record.modified_fields
+ record = self.screen.current_record
+ added = 'id' in record.modified_fields
if (self.screen.current_record.id < 0
or self.save_current):
self.screen.cancel_current(self._initial_value)
- elif self.screen.current_record.modified:
- self.screen.current_record.cancel()
- self.screen.current_record.reload()
- self.screen.current_record.signal('record-changed')
+ elif record.modified:
+ record.cancel()
+ record.reload()
+ record.signal('record-changed')
if added:
- self.screen.current_record.modified_fields.setdefault('id')
+ record.modified_fields.setdefault('id')
result = False
else:
result = response_id not in cancel_responses