From 0782ec07e7f91e94e191d437e30364152af29c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Voet=20=28ryv=29?= Date: Wed, 4 Oct 2023 15:44:02 +0200 Subject: [PATCH] [FIX] web: display_name "New" fallback should only target new record. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There is a fallback in the control panel (https://github.com/odoo/odoo/blob/c22cb6bbadd38ecb050f6d4dc14672868beda20b/addons/web/static/src/search/control_panel/control_panel.xml#L137) if the display_name of the record is empty. But it is never actually used because there is another fallback in the form_controller ("New"). This latter fallback should only be used for new records, not for existing ones. closes odoo/odoo#138061 Signed-off-by: Raphael Collet Signed-off-by: Rémy Voet (ryv) --- addons/web/static/src/views/form/form_controller.js | 2 +- .../web/static/tests/views/form/form_view_tests.js | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/views/form/form_controller.js b/addons/web/static/src/views/form/form_controller.js index d11608a67a0..97f79d9466b 100644 --- a/addons/web/static/src/views/form/form_controller.js +++ b/addons/web/static/src/views/form/form_controller.js @@ -333,7 +333,7 @@ export class FormController extends Component { } displayName() { - return this.model.root.data.display_name || _t("New"); + return this.model.root.data.display_name || (this.model.root.isNew && _t("New")) || ""; } async onPagerUpdate({ offset, resIds }) { 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 172c5700122..3485b095451 100644 --- a/addons/web/static/tests/views/form/form_view_tests.js +++ b/addons/web/static/tests/views/form/form_view_tests.js @@ -14212,4 +14212,16 @@ QUnit.module("Views", (hooks) => { assert.verifySteps(["web_read", "web_save"]); } ); + + QUnit.test("existing record with falsy display_name", async function (assert) { + serverData.models.partner.records[0].display_name = ""; + await makeView({ + type: "form", + resModel: "partner", + serverData, + arch: `
`, + resId: 1, + }); + assert.strictEqual(target.querySelector(".o_breadcrumb").innerText, "Unnamed"); + }); });