diff options
| author | Aaron Bohy <aab@odoo.com> | 2017-03-14 15:29:54 +0100 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2017-04-11 19:44:38 +0200 |
| commit | 0111882af13aeb80ecc4c118918a6cae9f3d0624 (patch) | |
| tree | 913e131e2865c2e006e60643e905d85bc4ffe519 /addons/web/static/src/js/views/basic/basic_model.js | |
| parent | 942074557ba8ad9c1e7d91382268f4a02b77bf89 (diff) | |
[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.
Diffstat (limited to 'addons/web/static/src/js/views/basic/basic_model.js')
| -rw-r--r-- | addons/web/static/src/js/views/basic/basic_model.js | 26 |
1 files changed, 4 insertions, 22 deletions
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); }); |
