diff --git a/addons/spreadsheet/static/src/chart/plugins/odoo_chart_core_plugin.js b/addons/spreadsheet/static/src/chart/plugins/odoo_chart_core_plugin.js index 2af4ef138f3..78b5ab9b702 100644 --- a/addons/spreadsheet/static/src/chart/plugins/odoo_chart_core_plugin.js +++ b/addons/spreadsheet/static/src/chart/plugins/odoo_chart_core_plugin.js @@ -86,15 +86,7 @@ export class OdooChartCorePlugin extends CorePlugin { * @returns {Array} */ getOdooChartIds() { - const ids = []; - for (const sheetId of this.getters.getSheetIds()) { - ids.push( - ...this.getters - .getChartIds(sheetId) - .filter((id) => this.getters.getChartType(id).startsWith("odoo_")) - ); - } - return ids; + return Object.keys(this.charts); } /** diff --git a/addons/spreadsheet/static/tests/charts/model/odoo_chart_plugin_test.js b/addons/spreadsheet/static/tests/charts/model/odoo_chart_plugin_test.js index 3529032e24e..0899a8eafa3 100644 --- a/addons/spreadsheet/static/tests/charts/model/odoo_chart_plugin_test.js +++ b/addons/spreadsheet/static/tests/charts/model/odoo_chart_plugin_test.js @@ -5,7 +5,10 @@ import { OdooChart } from "@spreadsheet/chart/odoo_chart/odoo_chart"; import { OdooLineChart } from "@spreadsheet/chart/odoo_chart/odoo_line_chart"; import { nextTick } from "@web/../tests/helpers/utils"; import { createSpreadsheetWithChart, insertChartInSpreadsheet } from "../../utils/chart"; +import { insertListInSpreadsheet } from "../../utils/list"; import { createModelWithDataSource, waitForDataSourcesLoaded } from "../../utils/model"; +import { addGlobalFilter } from "../../utils/commands"; +import { THIS_YEAR_GLOBAL_FILTER } from "../../utils/global_filter"; import * as spreadsheet from "@odoo/o-spreadsheet"; import { makeServerError } from "@web/../tests/helpers/mock_server"; import { session } from "@web/session"; @@ -519,4 +522,14 @@ QUnit.module("spreadsheet > odoo chart plugin", {}, () => { [1, 3] ); }); + + QUnit.test("Can insert odoo chart from a different model", async (assert) => { + const model = await createModelWithDataSource(); + insertListInSpreadsheet(model, { model: "product", columns: ["name"] }); + await addGlobalFilter(model, THIS_YEAR_GLOBAL_FILTER); + const sheetId = model.getters.getActiveSheetId(); + assert.strictEqual(model.getters.getChartIds(sheetId).length, 0); + insertChartInSpreadsheet(model); + assert.strictEqual(model.getters.getChartIds(sheetId).length, 1); + }); });