diff --git a/addons/web/static/src/js/chrome/action_manager_act_window.js b/addons/web/static/src/js/chrome/action_manager_act_window.js index c1667e9b9e6..106f9f2aa47 100644 --- a/addons/web/static/src/js/chrome/action_manager_act_window.js +++ b/addons/web/static/src/js/chrome/action_manager_act_window.js @@ -396,7 +396,7 @@ ActionManager.include({ var inline = action.target === 'inline'; var options = { action_id: action.id, - toolbar: inDialog && inline, + toolbar: !inDialog && !inline, }; var views = action.views.slice(); if (!inline && !(inDialog && action.views[0][1] === 'form')) { diff --git a/addons/web/static/src/js/views/list/list_view.js b/addons/web/static/src/js/views/list/list_view.js index 3b64e7b7714..a28eb4da03a 100644 --- a/addons/web/static/src/js/views/list/list_view.js +++ b/addons/web/static/src/js/views/list/list_view.js @@ -69,6 +69,9 @@ var ListView = BasicView.extend({ params.hasSidebar = !inDialog && !inline; return params; }, + /** + * @override + */ _updateMVCParams: function () { this._super.apply(this, arguments); this.controllerParams.noLeaf = !!this.loadParams.context.group_by_no_leaf; diff --git a/addons/web/static/tests/chrome/action_manager_tests.js b/addons/web/static/tests/chrome/action_manager_tests.js index 5e2679fb7fb..cf7df5376c3 100644 --- a/addons/web/static/tests/chrome/action_manager_tests.js +++ b/addons/web/static/tests/chrome/action_manager_tests.js @@ -2127,18 +2127,35 @@ QUnit.module('ActionManager', { }); QUnit.test('sidebar is present in list view', function (assert) { - assert.expect(2); + assert.expect(5); var actionManager = createActionManager({ actions: this.actions, archs: this.archs, data: this.data, + mockRPC: function (route, args) { + var res = this._super.apply(this, arguments); + if (args.method === 'load_views') { + assert.strictEqual(args.kwargs.options.toolbar, true, + "should ask for toolbar information"); + return res.then(function (fieldsViews) { + fieldsViews.list.toolbar = { + print: [{name: "Print that record"}], + }; + return fieldsViews; + }); + } + return res; + }, }); actionManager.doAction(3); + assert.isNotVisible(actionManager.$('.o_cp_sidebar button.o_dropdown_toggler_btn:contains("Print")')); assert.isNotVisible(actionManager.$('.o_cp_sidebar button.o_dropdown_toggler_btn:contains("Action")')); testUtils.dom.clickFirst(actionManager.$('input.custom-control-input')); + assert.isVisible(actionManager.$('.o_cp_sidebar button.o_dropdown_toggler_btn:contains("Print")')); assert.isVisible(actionManager.$('.o_cp_sidebar button.o_dropdown_toggler_btn:contains("Action")')); + actionManager.destroy(); });