From 054c2f21df60c5c977c0cb472baf02e9fb022a3e Mon Sep 17 00:00:00 2001 From: FrancoisGe Date: Tue, 2 Aug 2022 14:07:09 +0000 Subject: [PATCH] [FIX] web: FormView with OuterGroup empty Before this commit, if a form view has a group containing only invisible elements and at least one invisible group, then the view crashes. Example:
The solution is to have an empty list as the default props for the OuterGroup slots. OuterGroup is a group containing at least one other group. closes odoo/odoo#97295 Signed-off-by: Aaron Bohy (aab) --- .../src/views/form/form_group/form_group.js | 4 ++++ .../tests/views/form/form_view_tests.js | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/addons/web/static/src/views/form/form_group/form_group.js b/addons/web/static/src/views/form/form_group/form_group.js index b7c783dceb2..760348d2b66 100644 --- a/addons/web/static/src/views/form/form_group/form_group.js +++ b/addons/web/static/src/views/form/form_group/form_group.js @@ -31,6 +31,10 @@ export class OuterGroup extends Group { } } OuterGroup.template = "web.Form.OuterGroup"; +OuterGroup.defaultProps = { + ...Group.defaultProps, + slots: [], +}; export class InnerGroup extends Group { getRows() { diff --git a/addons/web/static/tests/views/form/form_view_tests.js b/addons/web/static/tests/views/form/form_view_tests.js index 666823b4a12..b6fc9378e9e 100644 --- a/addons/web/static/tests/views/form/form_view_tests.js +++ b/addons/web/static/tests/views/form/form_view_tests.js @@ -299,6 +299,27 @@ QUnit.module("Views", (hooks) => { assert.containsNone(target, "label.o_form_label_empty:contains(timmy)"); }); + QUnit.test("form view with a group that contains an invisible group", async function (assert) { + await makeView({ + type: "form", + resModel: "partner", + serverData, + arch: ` +
+ + + + + + + +
`, + resId: 2, + }); + + assert.containsOnce(target, ".o_form_view .o_group"); + }); + QUnit.test("status bar rendering without buttons", async (assert) => { await makeView({ type: "form",