diff --git a/addons/web/static/src/js/views/list/list_controller.js b/addons/web/static/src/js/views/list/list_controller.js index 5dc5515173eda928d8367118647d657bb03fd631..110fab8e897c212d7490b08eed2ba53d19534b9b 100644 --- a/addons/web/static/src/js/views/list/list_controller.js +++ b/addons/web/static/src/js/views/list/list_controller.js @@ -812,6 +812,7 @@ var ListController = BasicController.extend({ this.selectedRecords = ev.data.selection; this.isPageSelected = ev.data.allChecked; this.isDomainSelected = false; + this.$('.o_list_export_xlsx').toggle(!this.selectedRecords.length); this._updateSelectionBox(); this._updateControlPanel(); }, diff --git a/addons/web/static/tests/views/list_tests.js b/addons/web/static/tests/views/list_tests.js index 985662cf27b5adc6cc1391addbc5e4deef49b8aa..785b3864e8d9e654412ee69489e3a087af35f86e 100644 --- a/addons/web/static/tests/views/list_tests.js +++ b/addons/web/static/tests/views/list_tests.js @@ -253,6 +253,30 @@ QUnit.module('Views', { list.destroy(); }); + QUnit.test('export button in list view', async function (assert) { + assert.expect(5); + + const list = await createView({ + View: ListView, + model: 'foo', + data: this.data, + arch: '<tree><field name="foo"/></tree>', + }); + + assert.containsN(list, '.o_data_row', 4); + assert.isVisible(list.$('.o_list_export_xlsx')); + + await testUtils.dom.click(list.$('tbody td.o_list_record_selector:first input')); + + assert.isNotVisible(list.$('.o_list_export_xlsx')); + assert.containsOnce(list.$('.o_cp_buttons'), '.o_list_selection_box'); + + await testUtils.dom.click(list.$('tbody td.o_list_record_selector:first input')); + assert.isVisible(list.$('.o_list_export_xlsx')); + + list.destroy(); + }); + QUnit.test('simple editable rendering', async function (assert) { assert.expect(15); diff --git a/addons/web/static/tests/widgets/data_export_tests.js b/addons/web/static/tests/widgets/data_export_tests.js index 9a6f23b815b2dcc3c7eaf52808c0169c82b5d3b8..e7fb9864791c62d76cbf85b4e8ee4af7526ac055 100644 --- a/addons/web/static/tests/widgets/data_export_tests.js +++ b/addons/web/static/tests/widgets/data_export_tests.js @@ -325,8 +325,6 @@ QUnit.module('widgets', { }, }); - // select a record => should not be taken into account - await testUtils.dom.click(list.$('.o_data_row .o_list_record_selector input')[0]); // Download await testUtils.dom.click(list.$buttons.find('.o_list_export_xlsx'));