diff options
| author | Martin Geubelle <mge@odoo.com> | 2018-01-22 16:35:49 +0100 |
|---|---|---|
| committer | Martin Geubelle <mge@odoo.com> | 2018-01-24 10:59:45 +0100 |
| commit | 2d3ecf29b3c089126d04978e512b16d0cd2ec585 (patch) | |
| tree | ebd9d2407d08675efa4134dd0c073c86aaec9c1c /addons/web/static/tests | |
| parent | b8f8012af8e9a7b9974a6578133e81ea890b0f23 (diff) | |
[FIX] web: handle nested x2m default values
A `default_get` for a x2many field can return a new list of commands for one of
its x2many field, like
[[0, 0, {
'groups_id': [[6, 0, [1, 2, 3]]],
}]]
where [1, 2, 3] is a list of existing ids.
This use case was not correctly handled by the BasicModel because
`_makeDefaultRecord` was not recursive.
Closes #22401
Diffstat (limited to 'addons/web/static/tests')
| -rw-r--r-- | addons/web/static/tests/fields/relational_fields_tests.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/addons/web/static/tests/fields/relational_fields_tests.js b/addons/web/static/tests/fields/relational_fields_tests.js index fcb852907e3..be922d3fa1a 100644 --- a/addons/web/static/tests/fields/relational_fields_tests.js +++ b/addons/web/static/tests/fields/relational_fields_tests.js @@ -6201,6 +6201,38 @@ QUnit.module('relational_fields', { form.destroy(); }); + QUnit.test('nested x2many default values', function (assert) { + assert.expect(2); + + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: '<form string="Partners">' + + '<field name="turtles">' + + '<tree editable="top">' + + '<field name="partner_ids" widget="many2many_tags"/>' + + '</tree>' + + '</field>' + + '</form>', + mockRPC: function (route, args) { + if (args.model === 'partner' && args.method === 'default_get') { + return $.when({turtles: [[0, 0, { + partner_ids: [[6, 0, [4]]], + }]]}); + } + return this._super.apply(this, arguments); + }, + }); + + assert.strictEqual(form.$('.o_list_view .o_field_many2manytags[name="partner_ids"] .badge').length, 1, + "m2mtags should contain one tag"); + assert.strictEqual(form.$('.o_list_view .o_field_many2manytags[name="partner_ids"] .o_badge_text').text(), + 'aaa', "tag name should have been correctly loaded"); + + form.destroy(); + }); + QUnit.test('one2many (who contains display_name) with tree view and without form view', function (assert) { assert.expect(1); |
