Description
Clicking a computed KPI cell (e.g. profit - loss) in the MIS report widget triggers:
UncaughtPromiseError: No view found for act_window action undefined
Root cause
mis_report_instance.drilldown() returns False when the expression has no account variable (AEP.has_account_var() is False for computed expressions like profit - loss). The JS handler calls this.action.doAction(action) without checking for a falsy return:
// mis_report_widget.esm.js line ~137
async drilldown(event) {
const drilldown = JSON.parse(event.target.dataset.drilldown);
const action = await this.orm.call(
"mis.report.instance", "drilldown",
[this._instanceId(), drilldown],
{context: this.context}
);
this.action.doAction(action); // ← action is False
}
Expected behavior
Clicking a computed KPI cell should either:
- Do nothing (silently ignore), or
- Show a notification that drill-down is not available for computed lines
Steps to reproduce
- Create a MIS report with a computed KPI (e.g.
profit - loss)
- Create a report instance with at least one period
- Click on the computed KPI cell value
- Observe the JS error
Environment
- Odoo 18.0 CE
- mis_builder 18.0.1.8.1
Description
Clicking a computed KPI cell (e.g.
profit - loss) in the MIS report widget triggers:Root cause
mis_report_instance.drilldown()returnsFalsewhen the expression has no account variable (AEP.has_account_var()is False for computed expressions likeprofit - loss). The JS handler callsthis.action.doAction(action)without checking for a falsy return:Expected behavior
Clicking a computed KPI cell should either:
Steps to reproduce
profit - loss)Environment