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 2cfa96a3015..8e534d4eda1 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -1414,8 +1414,10 @@ var BasicModel = AbstractModel.extend({ var domain = record.getDomain({fieldName: fieldName}); if (domain.length) { var localID = record.data[fieldName]; - var element = this.localData[localID]; - domain = ["|", ["id", "=", element.data.id]].concat(domain); + if (localID) { + var element = this.localData[localID]; + domain = ["|", ["id", "=", element.data.id]].concat(domain); + } } // avoid rpc if not necessary diff --git a/addons/web/static/test/fields/relational_fields_tests.js b/addons/web/static/test/fields/relational_fields_tests.js index a7e6f12e40f..31fa1189b69 100644 --- a/addons/web/static/test/fields/relational_fields_tests.js +++ b/addons/web/static/test/fields/relational_fields_tests.js @@ -2449,6 +2449,26 @@ QUnit.module('relational_fields', { form.destroy(); }); + QUnit.test('statusbar with domain but no value (create mode)', function (assert) { + assert.expect(1); + + this.data.partner.fields.trululu.domain = "[('bar', '=', True)]"; + + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: + '
' + + '
' + + '
', + }); + + assert.strictEqual(form.$('.o_statusbar_status button:disabled').length, 2, "should have 2 status"); + + form.destroy(); + }); + QUnit.test('statusbar fold_field option and statusbar_visible attribute', function (assert) { assert.expect(2);