details:   https://code.tryton.org/tryton/commit/2a32179514a3
branch:    7.8
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
        (grafted from 804f498790430d3fd89a274d5e261fb80b0c5520)
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 8fe46a0f9740 -r 2a32179514a3 sao/src/tab.js
--- a/sao/src/tab.js    Mon Feb 16 13:31:11 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 8fe46a0f9740 -r 2a32179514a3 tryton/tryton/gui/window/form.py
--- a/tryton/tryton/gui/window/form.py  Mon Feb 16 13:31:11 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