summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic
diff options
context:
space:
mode:
authorAaron Bohy <aab@odoo.com>2017-03-14 15:29:54 +0100
committerAaron Bohy <aab@odoo.com>2017-04-11 19:44:38 +0200
commit0111882af13aeb80ecc4c118918a6cae9f3d0624 (patch)
tree913e131e2865c2e006e60643e905d85bc4ffe519 /addons/web/static/src/js/views/basic
parent942074557ba8ad9c1e7d91382268f4a02b77bf89 (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')
-rw-r--r--addons/web/static/src/js/views/basic/basic_model.js26
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);
});