summaryrefslogtreecommitdiff
path: root/addons/board/static
diff options
context:
space:
mode:
authorlen-odoo <len@odoo.com>2018-11-20 13:43:27 +0000
committerlen-odoo <len@odoo.com>2018-11-20 13:44:56 +0000
commitfff6c93830d74ece3e8689ccae0118d5dade6515 (patch)
treee4122bf177438a7f50d1e601ef65ce5483bb1a24 /addons/board/static
parentb3052b690fad15feb3211525666d4962bc1a24ac (diff)
[FIX] board: fix the domain of consecutive 'add to dashboard' operations
Add a search containing a domain to dashboard. Remove that domain. Do a new search with a different domain. Add that search to dashboard; the domain sent would be the concatenation of the two domains. We make it so that only the last domain is sent, with a test. opw 1907650 closes odoo/odoo#28843
Diffstat (limited to 'addons/board/static')
-rw-r--r--addons/board/static/src/js/favorite_menu.js2
-rw-r--r--addons/board/static/tests/dashboard_tests.js58
2 files changed, 59 insertions, 1 deletions
diff --git a/addons/board/static/src/js/favorite_menu.js b/addons/board/static/src/js/favorite_menu.js
index cdb531914c9..a3040af44f0 100644
--- a/addons/board/static/src/js/favorite_menu.js
+++ b/addons/board/static/src/js/favorite_menu.js
@@ -56,7 +56,7 @@ FavoriteMenu.include({
var self = this;
var search_data = this.searchview.build_search_data();
var context = new Context(this.searchview.dataset.get_context() || []);
- var domain = this.searchview.dataset.get_domain() || [];
+ var domain = [];
_.each(search_data.contexts, context.add, context);
_.each(search_data.domains, function (d) {
diff --git a/addons/board/static/tests/dashboard_tests.js b/addons/board/static/tests/dashboard_tests.js
index 1e17ca71db1..7ed0a4a60b0 100644
--- a/addons/board/static/tests/dashboard_tests.js
+++ b/addons/board/static/tests/dashboard_tests.js
@@ -698,6 +698,64 @@ QUnit.test('save actions to dashboard', function (assert) {
actionManager.destroy();
});
+QUnit.test('save two searches to dashboard', function (assert) {
+ // the second search saved should not be influenced by the first
+ assert.expect(2);
+
+ var actionManager = createActionManager({
+ data: this.data,
+ archs: {
+ 'partner,false,list': '<list><field name="foo"/></list>',
+ 'partner,false,search': '<search></search>',
+ },
+ mockRPC: function (route, args) {
+ if (route === '/board/add_to_dashboard') {
+ if (filter_count === 0) {
+ assert.deepEqual(args.domain, [["display_name", "ilike", "a"]],
+ "the correct domain should be sent");
+ }
+ if (filter_count === 1) {
+ assert.deepEqual(args.domain, [["display_name", "ilike", "b"]],
+ "the correct domain should be sent");
+ }
+
+ filter_count += 1;
+ return $.when(true);
+ }
+ return this._super.apply(this, arguments);
+ },
+ });
+
+ actionManager.doAction({
+ id: 1,
+ res_model: 'partner',
+ type: 'ir.actions.act_window',
+ views: [[false, 'list']],
+ });
+
+ var filter_count = 0;
+ // Add a first filter
+ $('span.fa-filter').click();
+ $('.o_add_custom_filter:visible').click();
+ $('.o_searchview_extended_prop_value .o_input').val('a')
+ $('.o_apply_filter').click();
+ // Add it to dashboard
+ $('.o_add_to_dashboard_button').click();
+ // Remove it
+ $('.o_facet_remove').click();
+
+ // Add the second filter
+ $('span.fa-filter').click();
+ $('span.fa-filter').click();
+ $('.o_add_custom_filter:visible').click();
+ $('.o_searchview_extended_prop_value .o_input').val('b')
+ $('.o_apply_filter').click();
+ // Add it to dashboard
+ $('.o_add_to_dashboard_button').click();
+
+ actionManager.destroy();
+});
+
QUnit.test('save to dashboard actions with flag keepSearchView', function (assert) {
assert.expect(4);