From 42a57110eb958238a8eaf7f33ea7c2c0417f8a32 Mon Sep 17 00:00:00 2001 From: "Michael (mcm)" Date: Thu, 19 Jan 2023 09:24:16 +0000 Subject: [PATCH] [IMP] web: enable list button for draft record Before this commit, the buttons of the draft record in a list view were disabled. Now, they are enabled and will save (create) the record before executing the button's action. closes odoo/odoo#110383 Task: 3132960 Signed-off-by: Aaron Bohy (aab) --- .../static/src/views/list/list_controller.js | 6 ++++- .../static/src/views/list/list_renderer.xml | 2 +- .../web/static/tests/views/list_view_tests.js | 22 +++++++++++++++++-- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/addons/web/static/src/views/list/list_controller.js b/addons/web/static/src/views/list/list_controller.js index e922beb61fc..3d774eebbcc 100644 --- a/addons/web/static/src/views/list/list_controller.js +++ b/addons/web/static/src/views/list/list_controller.js @@ -494,7 +494,11 @@ export class ListController extends Component { }); } - async beforeExecuteActionButton(clickParams) {} + async beforeExecuteActionButton(clickParams) { + if (clickParams.special !== "cancel" && this.model.root.editedRecord) { + return this.model.root.editedRecord.save(); + } + } async afterExecuteActionButton(clickParams) {} } diff --git a/addons/web/static/src/views/list/list_renderer.xml b/addons/web/static/src/views/list/list_renderer.xml index 2e14e73f315..ced2c91d4b3 100644 --- a/addons/web/static/src/views/list/list_renderer.xml +++ b/addons/web/static/src/views/list/list_renderer.xml @@ -245,7 +245,7 @@ className="button.className" clickParams="button.clickParams" defaultRank="button.defaultRank" - disabled="record.isVirtual || button.disabled" + disabled="button.disabled" icon="button.icon" record="record" string="button.string" diff --git a/addons/web/static/tests/views/list_view_tests.js b/addons/web/static/tests/views/list_view_tests.js index 130657ac183..261d0d2acfb 100644 --- a/addons/web/static/tests/views/list_view_tests.js +++ b/addons/web/static/tests/views/list_view_tests.js @@ -7365,8 +7365,8 @@ QUnit.module("Views", (hooks) => { ); assert.strictEqual( target.querySelector(".o_list_button button").disabled, - true, - "buttons should be disabled while the record is not yet created" + false, + "buttons should not be disabled while the record is not yet created" ); await clickSave(target); @@ -7394,6 +7394,14 @@ QUnit.module("Views", (hooks) => {