From 0111882af13aeb80ecc4c118918a6cae9f3d0624 Mon Sep 17 00:00:00 2001 From: Aaron Bohy Date: Tue, 14 Mar 2017 15:29:54 +0100 Subject: [FIX] web: BasicModel: recursively fetch x2manys Before this commit, x2many fields embedded in x2many fields were not fetched. This was for example the case for many2many_tags in one2many fields. This commit enables the recursive fetch of x2many fields. There is still a missing piece, as the list of fields to fetch for those embedded x2manys is still unknown. This will come in a future commit. --- .../web/static/src/js/views/basic/basic_model.js | 26 ++++------------------ 1 file changed, 4 insertions(+), 22 deletions(-) (limited to 'addons/web/static/src/js/views/basic/basic_model.js') diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js index 333a74cd238..8ae01e87bbc 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -1631,7 +1631,10 @@ var BasicModel = AbstractModel.extend({ } record.data[fieldName] = list.id; if (!field.__no_fetch) { - defs.push(self._readUngroupedList(list)); + var def = self._readUngroupedList(list).then(function () { + return self._fetchX2ManysBatched(list); + }); + defs.push(def); } } }); @@ -2166,27 +2169,6 @@ var BasicModel = AbstractModel.extend({ // add many2one records self._parseServerData(list.fieldNames, dataPoint.fields, dataPoint.data); list._cache[id] = dataPoint.id; - - _.each(list.fieldNames, function (fieldName) { - var field = dataPoint.fields[fieldName]; - var val = dataPoint.data[fieldName]; - if (field.type === 'one2many' || field.type === 'many2many') { - var r = self._makeDataPoint({ - count: val.length, - fieldAttrs: field.fieldAttrs, - fields: field.relatedFields, - limit: field.limit, - modelName: field.relation, - res_ids: val, - static: true, - type: 'list', - parentID: list.id, - rawContext: field.context, - relationField: field.relation_field, - }); - dataPoint.data[fieldName] = r.id; - } - }); } list.data.push(dataPoint.id); }); -- cgit v1.2.3