diff options
| author | len-odoo <len@odoo.com> | 2018-11-20 13:43:27 +0000 |
|---|---|---|
| committer | len-odoo <len@odoo.com> | 2018-11-20 13:44:56 +0000 |
| commit | fff6c93830d74ece3e8689ccae0118d5dade6515 (patch) | |
| tree | e4122bf177438a7f50d1e601ef65ce5483bb1a24 | |
| parent | b3052b690fad15feb3211525666d4962bc1a24ac (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
| -rw-r--r-- | addons/board/static/src/js/favorite_menu.js | 2 | ||||
| -rw-r--r-- | addons/board/static/tests/dashboard_tests.js | 58 |
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); |
