From 03061e09ad26370292f6ab0c91c052f270d82199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Fri, 23 Dec 2022 09:39:18 +0000 Subject: [PATCH] [FIX] spreadsheet: download xlsx with active filters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit allows to download a spreadsheet with active filters without any crash. Commit https://github.com/odoo/odoo/commit/509bda2202df9f0f582fd020d96e8e1310b9abc7 was a first attempt to fix the issue. But the commit was wrong because an empty sheet for excel is not the same as an empty regular sheet. The `charts` property is missing and the excel would crash when trying to read it. Task 3102330 closes odoo/odoo#108603 X-original-commit: 0db14f258c31366ab53728735b4d31b4576c5269 Signed-off-by: Rémi Rahir (rar) --- .../src/global_filters/plugins/global_filters_ui_plugin.js | 5 ++--- .../static/tests/global_filters/global_filters_model_test.js | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/spreadsheet/static/src/global_filters/plugins/global_filters_ui_plugin.js b/addons/spreadsheet/static/src/global_filters/plugins/global_filters_ui_plugin.js index 7c13cce76e2..32979207deb 100644 --- a/addons/spreadsheet/static/src/global_filters/plugins/global_filters_ui_plugin.js +++ b/addons/spreadsheet/static/src/global_filters/plugins/global_filters_ui_plugin.js @@ -39,7 +39,7 @@ const MONTHS = { december: { value: 12, granularity: "month" }, }; -const { UuidGenerator } = spreadsheet.helpers; +const { UuidGenerator, createEmptyExcelSheet } = spreadsheet.helpers; const uuidGenerator = new UuidGenerator(); export default class GlobalFiltersUIPlugin extends spreadsheet.UIPlugin { @@ -439,8 +439,7 @@ export default class GlobalFiltersUIPlugin extends spreadsheet.UIPlugin { row++; } data.sheets.push({ - id: uuidGenerator.uuidv4(), - name: "Active Filters", + ...createEmptyExcelSheet(uuidGenerator.uuidv4(), _t("Active Filters")), cells, colNumber: 2, rowNumber: this.getters.getGlobalFilters().length + 1, diff --git a/addons/spreadsheet/static/tests/global_filters/global_filters_model_test.js b/addons/spreadsheet/static/tests/global_filters/global_filters_model_test.js index fc29f359581..9a9e89eb415 100644 --- a/addons/spreadsheet/static/tests/global_filters/global_filters_model_test.js +++ b/addons/spreadsheet/static/tests/global_filters/global_filters_model_test.js @@ -1151,6 +1151,7 @@ QUnit.module("spreadsheet > Global filters model", {}, () => { filterSheet.cells["B2"].content, model.getters.getFilterDisplayValue(filter.label) ); + model.exportXLSX(); // should not crash }); QUnit.test("Date filter automatic default value for years filter", async function (assert) {