summaryrefslogtreecommitdiff
path: root/addons/web/static/test
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2017-04-01 14:38:32 +0200
committerAaron Bohy <aab@odoo.com>2017-04-11 19:44:38 +0200
commit0f96189b7fbc481b21f0b7b7a2fdcb82916d6bae (patch)
treedcab5ac6540bf3e0ba0cb77853f496333e3a9084 /addons/web/static/test
parentcef1b273c06ba277c6d47a538c203872c4594898 (diff)
[FIX] web: update all fields in onchange in one2many
Before this commit, we did not properly update all fields in a one2many. I assume that it was because the list renderer crashed if it tried to display a field that did not exist in the list view, but in that case, we simply can ignore these fields.
Diffstat (limited to 'addons/web/static/test')
-rw-r--r--addons/web/static/test/fields/relational_fields_tests.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/addons/web/static/test/fields/relational_fields_tests.js b/addons/web/static/test/fields/relational_fields_tests.js
index a26234846ad..0cc697e96e5 100644
--- a/addons/web/static/test/fields/relational_fields_tests.js
+++ b/addons/web/static/test/fields/relational_fields_tests.js
@@ -92,6 +92,7 @@ QUnit.module('relational_fields', {
turtle_bar: {string: "Bar", type: "boolean", default: true},
turtle_int: {string: "int", type: "integer", sortable: true},
turtle_qux: {string: "Qux", type: "float", digits: [16,1], required: true, default: 1.5},
+ turtle_description: {string: "Description", type: "text"},
turtle_trululu: {string: "Trululu", type: "many2one", relation: 'partner'},
product_id: {string: "Product", type: "many2one", relation: 'product', required: true},
partner_ids: {string: "Partner", type: "many2many", relation: 'partner'},
@@ -1265,6 +1266,52 @@ QUnit.module('relational_fields', {
form.destroy();
});
+ QUnit.test('one2many list (editable): edition, part 4', function (assert) {
+ assert.expect(3);
+
+ this.data.turtle.onchanges = {
+ turtle_trululu: function (obj) {
+ if (obj.turtle_trululu) {
+ obj.turtle_description = "Some Description";
+ }
+ },
+ };
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form string="Partners">' +
+ '<group>' +
+ '<field name="turtles">' +
+ '<tree editable="top">' +
+ '<field name="turtle_trululu"/>' +
+ '<field name="turtle_description"/>' +
+ '</tree>' +
+ '</field>' +
+ '</group>' +
+ '</form>',
+ res_id: 2,
+ });
+
+ // edit mode, then click on Add an item
+ assert.strictEqual(form.$('tr.o_data_row').length, 0,
+ "should have 0 data rows");
+ form.$buttons.find('.o_form_button_edit').click();
+ form.$('.o_form_field_x2many_list_row_add a').click();
+ assert.strictEqual(form.$('textarea').val(), "",
+ "field turtle_description should be empty");
+
+ // add a value in the turtle_trululu field to trigger an onchange
+ var $dropdown = form.$('.o_form_field_many2one[name=turtle_trululu] input')
+ .autocomplete('widget');
+ form.$('.o_form_field_many2one[name=turtle_trululu] input').click();
+ $dropdown.find('a:contains(first record)').mouseenter().click();
+ assert.strictEqual(form.$('textarea').val(), "Some Description",
+ "field turtle_description should be set to the result of the onchange");
+ form.destroy();
+ });
+
QUnit.test('onchange in a one2many', function (assert) {
assert.expect(1);