diff --git a/addons/web/static/src/js/views/view_dialogs.js b/addons/web/static/src/js/views/view_dialogs.js index 5eeab5ccede..7ac9a070260 100644 --- a/addons/web/static/src/js/views/view_dialogs.js +++ b/addons/web/static/src/js/views/view_dialogs.js @@ -335,7 +335,7 @@ var SelectCreateDialog = ViewDialog.extend({ var _super = this._super.bind(this); var viewRefID = this.viewType === 'kanban' ? (this.options.kanban_view_ref && JSON.parse(this.options.kanban_view_ref) || false) : false; - return this.loadViews(this.res_model, this.context, [[viewRefID, this.viewType], [false, 'search']], {}) + return this.loadViews(this.res_model, this.context, [[viewRefID, this.viewType], [false, 'search']], {load_filters: true}) .then(this.setup.bind(this)) .then(function (fragment) { self.opened().then(function () { diff --git a/addons/web/static/tests/control_panel/favorite_menu_tests.js b/addons/web/static/tests/control_panel/favorite_menu_tests.js index 9b0e4816645..4dd4571c289 100644 --- a/addons/web/static/tests/control_panel/favorite_menu_tests.js +++ b/addons/web/static/tests/control_panel/favorite_menu_tests.js @@ -580,5 +580,46 @@ odoo.define('web.favorite_menu_tests', function (require) { form.destroy(); }); + + QUnit.test('modal loads saved search filters', async function (assert) { + assert.expect(1); + const data = { + partner: { + fields: { + bar: { string: "Bar", type: "many2one", relation: 'partner' }, + }, + // 10 records so that the Search button shows + records: Array.apply(null, Array(10)).map(function(_, i) { + return { id: i, display_name: "Record " + i, bar: 1 }; + }) + }, + }; + const form = await createView({ + arch: ` +
`, + data, + model: 'partner', + res_id: 1, + View: FormView, + interceptsPropagate: { + load_views: function (ev) { + assert.ok(ev.data.options.load_filters, "opening dialog should load the filters"); + }, + }, + }); + + await testUtils.form.clickEdit(form); + + await testUtils.fields.many2one.clickOpenDropdown('bar'); + await testUtils.fields.many2one.clickItem('bar', 'Search'); + + form.destroy(); + }); }); });