summaryrefslogtreecommitdiff
path: root/addons/web/static/test/fields
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2017-02-26 09:24:45 +0100
committerAaron Bohy <aab@odoo.com>2017-04-11 19:44:38 +0200
commitecceee639ed7bfdaf0e2e152fd147ee02e3281e2 (patch)
treea7ecc19f02eb4016625b844bbf1b1c3b4ae192ec /addons/web/static/test/fields
parented830f739491d01da92f2517bd4cee453d994923 (diff)
[FIX] web: formview dialog can now properly evaluate context
For this change, I had to pass the handle to the parent datapoint all the way from the controller to the new form view.
Diffstat (limited to 'addons/web/static/test/fields')
-rw-r--r--addons/web/static/test/fields/relational_fields_tests.js43
1 files changed, 43 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 c76c5bdebe0..63dc28f697d 100644
--- a/addons/web/static/test/fields/relational_fields_tests.js
+++ b/addons/web/static/test/fields/relational_fields_tests.js
@@ -1359,6 +1359,49 @@ QUnit.module('relational_fields', {
form.$buttons.find('.o_form_button_save').click();
});
+ QUnit.test('one2many list with inline form view with context with parent key', function (assert) {
+ assert.expect(2);
+
+ this.data.partner.records[0].p = [2];
+ this.data.partner.records[0].product_id = 41;
+ this.data.partner.records[1].product_id = 37;
+
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form string="Partners">' +
+ '<field name="foo"/>' +
+ '<field name="product_id"/>' +
+ '<field name="p">' +
+ '<form string="Partner">' +
+ '<field name="product_id" context="{\'partner_foo\':parent.foo, \'lalala\': parent.product_id}"/>' +
+ '</form>' +
+ '<tree>' +
+ '<field name="product_id"/>' +
+ '</tree>' +
+ '</field>' +
+ '</form>',
+ res_id: 1,
+ mockRPC: function (route, args) {
+ if (args.method === 'name_search') {
+ assert.strictEqual(args.kwargs.context.partner_foo, "yop",
+ "should have correctly evaluated parent foo field");
+ assert.strictEqual(args.kwargs.context.lalala, 41,
+ "should have correctly evaluated parent product_id field");
+ }
+ return this._super.apply(this, arguments);
+ },
+ });
+
+ form.$buttons.find('.o_form_button_edit').click();
+ // open a modal
+ form.$('tr.o_data_row:eq(0) td:contains(xphone)').click();
+
+ // write in the many2one field
+ $('.modal .o_form_field_many2one input').click();
+ });
+
QUnit.test('one2many list edition, some basic functionality', function (assert) {
assert.expect(3);