From f2aaba59481f275948c9a2e8b9eba11a2632a66f Mon Sep 17 00:00:00 2001 From: "Hubert Van de Walle (huvw)" Date: Mon, 28 Mar 2022 08:42:41 +0000 Subject: [PATCH] [FIX] web: radio widget ignores required attribute opw-2729810 closes odoo/odoo#87918 X-original-commit: 65f4c4f29a9c747f114eb6359d3ebb036efab9d6 Signed-off-by: Lucas Perais (lpe) Signed-off-by: Hubert Van De Walle --- .../src/legacy/js/fields/relational_fields.js | 8 ------ .../legacy/fields/relational_fields_tests.js | 28 +++++++++++++++++++ 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/addons/web/static/src/legacy/js/fields/relational_fields.js b/addons/web/static/src/legacy/js/fields/relational_fields.js index e16e66a3774..fdbe1ea30d4 100644 --- a/addons/web/static/src/legacy/js/fields/relational_fields.js +++ b/addons/web/static/src/legacy/js/fields/relational_fields.js @@ -3449,14 +3449,6 @@ var FieldRadio = FieldSelection.extend({ return checked.length ? checked : this.$("[data-index='0']"); }, - /** - * @override - * @returns {boolean} always true - */ - isSet: function () { - return true; - }, - /** * Associates the 'for' attribute to the radiogroup, instead of the selected * radio button. diff --git a/addons/web/static/tests/legacy/fields/relational_fields_tests.js b/addons/web/static/tests/legacy/fields/relational_fields_tests.js index 23558857b3b..a7473396140 100644 --- a/addons/web/static/tests/legacy/fields/relational_fields_tests.js +++ b/addons/web/static/tests/legacy/fields/relational_fields_tests.js @@ -2329,6 +2329,34 @@ QUnit.module('relational_fields', { form.destroy(); }); + QUnit.test('required fieldradio widget on a many2one', async function (assert) { + assert.expect(6); + + const form = await createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: '
' + + '' + + '', + }); + + testUtils.mock.intercept(form, 'call_service', function (event) { + if (event.data.service === 'notification' && event.data.method === 'notify') { + assert.step('danger'); + assert.equal(event.data.args[0].type, 'danger'); + assert.equal(event.data.args[0].title, 'Invalid fields:'); + assert.equal(event.data.args[0].message, '
  • Product
'); + } + }); + + assert.containsNone(form, 'input:checked', "none of the input should be checked"); + + await testUtils.form.clickSave(form); + assert.verifySteps(['danger']); + form.destroy(); + }); + QUnit.test('fieldradio change value by onchange', async function (assert) { assert.expect(4);