diff --git a/addons/web/static/src/views/view_dialogs/export_data_dialog.js b/addons/web/static/src/views/view_dialogs/export_data_dialog.js index cc9ed6ee8e7..1f5db9a3466 100644 --- a/addons/web/static/src/views/view_dialogs/export_data_dialog.js +++ b/addons/web/static/src/views/view_dialogs/export_data_dialog.js @@ -204,6 +204,7 @@ export class ExportDataDialog extends Component { async fetchFields() { this.state.search = []; this.knownFields = {}; + this.expandedFields = {}; await this.loadFields(); await this.setDefaultExportList(); if (this.searchRef.el) { diff --git a/addons/web/static/src/views/view_dialogs/export_data_dialog.xml b/addons/web/static/src/views/view_dialogs/export_data_dialog.xml index f8f63ace164..1fdc0dda039 100644 --- a/addons/web/static/src/views/view_dialogs/export_data_dialog.xml +++ b/addons/web/static/src/views/view_dialogs/export_data_dialog.xml @@ -42,7 +42,7 @@
- + { await click(target, ".o_select_button"); }); + QUnit.test("toggling import compatibility after adding an expanded field", async function (assert) { + assert.expect(1); + + mockDownload(({ url, data }) => { + assert.ok( + JSON.parse(data.data)["import_compat"], + "request to generate the file must have 'import_compat' as true" + ); + return Promise.resolve(); + }); + + await makeView({ + serverData, + type: "list", + resModel: "partner", + arch: ``, + actionMenus: {}, + mockRPC(route, args) { + if (route === "/web/export/formats") { + return Promise.resolve([ + { tag: "csv", label: "CSV" }, + ]); + } + if (route === "/web/export/get_fields") { + if (!args.parent_field) { + return Promise.resolve(fetchedFields.root); + } + return Promise.resolve(fetchedFields[args.prefix]); + } + }, + }); + + await openExportDataDialog(); + await click(target, "[data-field_id='activity_ids']"); + await click(target, "[data-field_id='activity_ids/partner_ids'] .o_add_field"); + await click(target, ".o_import_compat input"); + await click(target, "[data-field_id='activity_ids']"); + await click(target, ".o_select_button"); + }); + QUnit.test("Export dialog: many2many fields are extendable", async function (assert) { await makeView({ serverData,