From 7ed25e2922cc9ec4f94785008499c59d4e53d2d0 Mon Sep 17 00:00:00 2001 From: fwi-odoo Date: Thu, 20 Apr 2017 16:47:29 +0200 Subject: [PATCH] [FIX] web: don't delete the fields with value `false` on record creation Before this commit, all the fields with value `false` on record creation were deleted from the given parameters for the `create` rpc. e.g. it was impossible to untick a checkbox in the settings, the `false` value was not saved in the created record. --- .../static/src/js/views/basic/basic_model.js | 1 - addons/web/static/tests/views/form_tests.js | 24 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js index efc7fbc1971..dcc73a2845b 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -671,7 +671,6 @@ var BasicModel = AbstractModel.extend({ if (method === 'create') { var fieldNames = record.getFieldNames(); _.each(fieldNames, function (name) { - changes[name] = changes[name] || record.data[name]; if (changes[name] === null) { delete changes[name]; } diff --git a/addons/web/static/tests/views/form_tests.js b/addons/web/static/tests/views/form_tests.js index 617dc221651..5635f0cefa2 100644 --- a/addons/web/static/tests/views/form_tests.js +++ b/addons/web/static/tests/views/form_tests.js @@ -3378,5 +3378,29 @@ QUnit.module('Views', { form.destroy(); }); + QUnit.test('create with false values', function (assert) { + assert.expect(1); + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: '
' + + '' + + '
', + mockRPC: function (route, args) { + if (args.method === 'create') { + assert.strictEqual(args.args[0].bar, false, + "the false value should be given as parameter"); + } + return this._super(route, args); + }, + debug: true, + }); + + form.$buttons.find('.o_form_button_save').click(); + + form.destroy(); + }); + }); });