details:   https://code.tryton.org/tryton/commit/804f49879043
branch:    default
user:      Cédric Krier <[email protected]>
date:      Wed Feb 04 15:26:34 2026 +0100
description:
        Set revision context before clearing the screen

        This prevents the clear method (which set the current record to null) 
to update
        the URL with the old revision and thus opens a new tab.

        Closes #14577
diffstat:

 sao/src/tab.js                   |  4 +++-
 tryton/tryton/gui/window/form.py |  2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diffs (31 lines):

diff -r 07a0ab59f30e -r 804f49879043 sao/src/tab.js
--- a/sao/src/tab.js    Fri Jan 23 23:49:58 2026 +0100
+++ b/sao/src/tab.js    Wed Feb 04 15:26:34 2026 +0100
@@ -1053,10 +1053,12 @@
                         revision = revisions[revisions.length - 1][0];
                     }
                     if (revision != this.screen.context._datetime) {
-                        this.screen.clear();
                         // Update group context that will be propagated by
                         // recreating new group
                         this.screen.group._context._datetime = revision;
+                        // clear after updating the datetime such that the tab
+                        // compute already the right URL
+                        this.screen.clear();
                         if (this.screen.current_view.view_type != 'form') {
                             this.screen.search_filter(
                                     this.screen.screen_container
diff -r 07a0ab59f30e -r 804f49879043 tryton/tryton/gui/window/form.py
--- a/tryton/tryton/gui/window/form.py  Fri Jan 23 23:49:58 2026 +0100
+++ b/tryton/tryton/gui/window/form.py  Wed Feb 04 15:26:34 2026 +0100
@@ -354,9 +354,9 @@
                 and revision < revisions[-1][0]):
             revision = revisions[-1][0]
         if revision != self.screen.context.get('_datetime'):
-            self.screen.clear()
             # Update root group context that will be propagated
             self.screen.group._context['_datetime'] = revision
+            self.screen.clear()
             if self.screen.current_view.view_type != 'form':
                 self.screen.search_filter(
                     self.screen.screen_container.get_text())

Reply via email to