summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic/basic_model.js
diff options
context:
space:
mode:
authorLucas Perais (lpe) <lpe@odoo.com>2020-10-13 08:50:43 +0000
committerLucas Perais (lpe) <lpe@odoo.com>2020-10-14 14:15:37 +0000
commit690e6aff3fdc1159d8752090322d5e8115e4417f (patch)
tree19b10c85695644ab2061e031a22a0df3064aa103 /addons/web/static/src/js/views/basic/basic_model.js
parent8c9792d811feeb3080fa1106d358112c630d19f7 (diff)
[FIX] web: fetching reference fields' name_get batched in grouped list
Commit e10fd34682a0c55568cba66eb271b3aa5bed7c1d introduced batched reference fields name_gets across groups but was also buggy as follows: Have a grouped list view showing at least 2 groups Have a reference field with different values showed in the list for each record Before this commit, the name_get of those reference fiels were fetched only for the last group After this commit, the name_get are fetched in a batched fashion (by model) for each group and display correctly closes odoo/odoo#59903 X-original-commit: bbb608a1eff638040f0fc7b951fedf1579cc15b2 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com> Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
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.js11
1 files changed, 8 insertions, 3 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 3b750fc743a..649dd3bb1c6 100644
--- a/addons/web/static/src/js/views/basic/basic_model.js
+++ b/addons/web/static/src/js/views/basic/basic_model.js
@@ -2626,7 +2626,7 @@ var BasicModel = AbstractModel.extend({
var toFetch = {};
_.each(list.data, function (groupIndex) {
var group = self.localData[groupIndex];
- _.extend(toFetch, self._getDataToFetchByModel(group, fieldName));
+ self._getDataToFetchByModel(group, fieldName, toFetch);
});
var defs = [];
@@ -3501,13 +3501,18 @@ var BasicModel = AbstractModel.extend({
*
* @param {Object} list a valid resource object
* @param {string} fieldName
+ * @param {Object} [toFetchAcc] an object to store fetching data. Used when
+ * batching reference across multiple groups.
+ * [modelName: string]: {
+ * [recordId: number]: datapointId[]
+ * }
* @returns {Object} each key represent a model and contain a sub-object
* where each key represent an id (res_id) containing an array of
* webclient id (referred to a datapoint, so not a res_id).
*/
- _getDataToFetchByModel: function (list, fieldName) {
+ _getDataToFetchByModel: function (list, fieldName, toFetchAcc) {
var self = this;
- var toFetch = {};
+ var toFetch = toFetchAcc || {};
_.each(list.data, function (dataPoint) {
var record = self.localData[dataPoint];
var value = record.data[fieldName];