summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/fields
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/tests/fields')
-rw-r--r--addons/web/static/tests/fields/relational_fields_tests.js37
1 files changed, 37 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 ef10a0aeb80..0a1fd9128e6 100644
--- a/addons/web/static/tests/fields/relational_fields_tests.js
+++ b/addons/web/static/tests/fields/relational_fields_tests.js
@@ -7834,6 +7834,43 @@ QUnit.module('relational_fields', {
form.destroy();
});
+ QUnit.test('onchange in a one2Many, but not in main record, with non inline view', function (assert) {
+ assert.expect(6);
+
+ this.data.partner.fields.sequence = {string: 'Sequence', type: 'integer'};
+ this.data.partner.records[0].sequence = 1;
+ this.data.partner.records[1].sequence = 2;
+ this.data.partner.onchanges = {sequence: function () {}};
+
+ this.data.partner_type.fields.partner_ids = {string: "Partner", type: "one2many", relation: 'partner'};
+ this.data.partner_type.records[0].partner_ids = [1,2];
+
+ var form = testUtils.createView({
+ View: FormView,
+ model: 'partner_type',
+ data: this.data,
+ arch: '<form><field name="partner_ids"/></form>',
+ archs: {
+ 'partner,false,list': '<tree string="Vendors">' +
+ '<field name="sequence" widget="handle"/>' +
+ '<field name="display_name"/>' +
+ '</tree>',
+ },
+ res_id: 12,
+ mockRPC: function (route, args) {
+ assert.step(args.method);
+ return this._super.apply(this, arguments);
+ },
+ viewOptions: {mode: 'edit'},
+ });
+
+ // swap 2 lines in the one2many
+ testUtils.dragAndDrop(form.$('.ui-sortable-handle:eq(1)'), form.$('tbody tr').first(),
+ {position: 'top'});
+ assert.verifySteps(['load_views', 'read', 'read', 'onchange', 'onchange']);
+ form.destroy();
+ });
+
QUnit.module('FieldMany2Many');
QUnit.test('many2many kanban: edition', function (assert) {