From ffef232014814e43edcdefd5fa6d1a3ca4003865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 20 Jan 2020 11:10:51 +0100 Subject: [PATCH] Remove id from screen context and compare proper attributes As mode is not always filled, we must compare only if view_ids is empty and we must use the default value as fall-back. The limit is a local parameter that should not be forced when opening an URL. The screen context may be modified thanks to the context model, we must compare the current context of the screen instead of the initial one. issue8977 review272751003 --- src/screen.js | 5 +++-- src/tab.js | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/screen.js b/src/screen.js index a4dca5f2d6..68d431b2e9 100644 --- a/src/screen.js +++ b/src/screen.js @@ -992,9 +992,10 @@ this.context_screen.display(true); return jQuery.when(); } + var screen_context = this.context_screen.get_on_change_value(); + delete screen_context.id; this.new_group(jQuery.extend( - this.local_context, - this.context_screen.get_on_change_value())); + this.local_context, screen_context)); } var domain = this.search_domain(search_string, true); diff --git a/src/tab.js b/src/tab.js index de2ef7449f..0a52b70c3b 100644 --- a/src/tab.js +++ b/src/tab.js @@ -695,14 +695,15 @@ (this.attributes.res_id === attributes.res_id) && (compare( this.attributes.domain || [], attributes.domain || [])) && - (compare( - this.attributes.mode || [], attributes.mode || [])) && (compare( this.attributes.view_ids || [], attributes.view_ids || [])) && - (JSON.stringify(this.attributes.context) === + (attributes.view_ids || + (compare( + this.attributes.mode || ['tree', 'form'], + attributes.mode || ['tree', 'form']))) && + (JSON.stringify(this.screen.local_context) === JSON.stringify(attributes.context)) && - (this.attributes.limit == attributes.limit) && (compare( this.attributes.search_value || [], attributes.search_value || []))