summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/fields
diff options
context:
space:
mode:
authorMartin Geubelle <mge@odoo.com>2018-01-22 16:35:49 +0100
committerMartin Geubelle <mge@odoo.com>2018-01-24 10:59:45 +0100
commit2d3ecf29b3c089126d04978e512b16d0cd2ec585 (patch)
treeebd9d2407d08675efa4134dd0c073c86aaec9c1c /addons/web/static/tests/fields
parentb8f8012af8e9a7b9974a6578133e81ea890b0f23 (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/fields')
-rw-r--r--addons/web/static/tests/fields/relational_fields_tests.js32
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);