[FIX] web: fetch dependency fields in x2many

Image field widget need the __last_update field alongside them
for caching purposes, though that field should never be present explicitly
in the views

Before this commit, the dependencies of field widgets were not merged into
the model's fields definition, creating a traceback when adding an image field widget
into a x2many list

After this commit, there is no traceback and the image field works properly

closes #27545
This commit is contained in:
Lucas Perais (lpe)
2018-10-09 14:16:56 +02:00
parent f6ea6ce951
commit cba5f7a98f
2 changed files with 38 additions and 0 deletions
@@ -1852,6 +1852,40 @@ QUnit.module('basic_fields', {
form.destroy();
});
QUnit.test('image fields in x2many list are loaded correctly', function (assert) {
assert.expect(2);
this.data.partner_type.fields.image = {name: 'image', type: 'binary'};
this.data.partner_type.records[0].image = 'product_image';
this.data.partner.records[0].timmy = [12];
var form = createView({
View: FormView,
model: 'partner',
data: this.data,
arch: '<form string="Partners">' +
'<field name="timmy" widget="many2many">' +
'<tree>' +
'<field name="image" widget="image"/>' +
'</tree>' +
'</field>' +
'</form>',
res_id: 1,
mockRPC: function (route, args) {
if (route === 'data:image/png;base64,product_image') {
assert.ok(true, "The list's image should have been fetched");
return $.when();
}
return this._super.apply(this, arguments);
},
});
assert.strictEqual(form.$('tr.o_data_row').length, 1,
'There should be one record in the many2many');
form.destroy();
});
QUnit.test('image fields with required attribute', function (assert) {
assert.expect(2);