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
This commit is contained in:
Cédric Krier committed 2020-01-20 11:10:51 +01:00
1 parent 5dbde4c944
commit ffef232014
2 files changed
+8 -6

No files matched your search

+3 -2
View File
@@ -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);
+5 -4
View File
@@ -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 || []))