diff --git a/addons/web/static/src/views/fields/relational_utils.js b/addons/web/static/src/views/fields/relational_utils.js
index fdac9aa429a..9e6d855dc9a 100644
--- a/addons/web/static/src/views/fields/relational_utils.js
+++ b/addons/web/static/src/views/fields/relational_utils.js
@@ -608,6 +608,7 @@ X2ManyFieldDialog.props = {
save: Function,
title: String,
delete: { optional: true },
+ deleteButtonLabel: {optional: true},
config: Object,
};
X2ManyFieldDialog.template = "web.X2ManyFieldDialog";
@@ -683,6 +684,7 @@ export function useOpenX2ManyRecord({
const form = await getFormViewInfo({ list, activeField, viewService, userService, env });
let deleteRecord;
+ let deleteButtonLabel = undefined;
const isDuplicate = !!record;
if (record) {
@@ -694,7 +696,8 @@ export function useOpenX2ManyRecord({
views: { form },
});
const { delete: canDelete, onDelete } = activeActions;
- deleteRecord = viewMode === "kanban" && canDelete ? () => onDelete(_record) : null;
+ deleteRecord = viewMode === "kanban" && canDelete ? () => onDelete(_record) : null;
+ deleteButtonLabel = activeActions.type === 'one2many' ? env._t('Delete') : env._t('Remove');
} else {
const recordParams = {
context: makeContext([list.context, context]),
@@ -738,6 +741,7 @@ export function useOpenX2ManyRecord({
},
title,
delete: deleteRecord,
+ deleteButtonLabel: deleteButtonLabel,
},
{ onClose }
);
diff --git a/addons/web/static/src/views/fields/relational_utils.xml b/addons/web/static/src/views/fields/relational_utils.xml
index 20e70b41870..cf205c161c8 100644
--- a/addons/web/static/src/views/fields/relational_utils.xml
+++ b/addons/web/static/src/views/fields/relational_utils.xml
@@ -20,7 +20,10 @@
-
+
diff --git a/addons/web/static/tests/views/fields/one2many_field_tests.js b/addons/web/static/tests/views/fields/one2many_field_tests.js
index 32a05b5be07..6fa48613b16 100644
--- a/addons/web/static/tests/views/fields/one2many_field_tests.js
+++ b/addons/web/static/tests/views/fields/one2many_field_tests.js
@@ -2518,6 +2518,42 @@ QUnit.module("Fields", (hooks) => {
await clickSave(target);
});
+ QUnit.test("When viewing one2many records in an embedded kanban, the delete button should say 'Delete' and not 'Remove'", async function (assert) {
+ assert.expect(1);
+ serverData.views = {
+ "turtle,false,form": `
+ `,
+ };
+ await makeView({
+ type: "form",
+ resModel: "partner",
+ serverData,
+ arch: `
+ `,
+ resId: 1,
+ });
+
+ // Opening the record to see the footer buttons
+ await click(target.querySelector(".o_kanban_record"));
+
+ assert.strictEqual(target.querySelector('.o_btn_remove').textContent, 'Delete');
+ });
+
QUnit.test("open a record in a one2many kanban (mode 'readonly')", async function (assert) {
serverData.views = {
"turtle,false,form": `