From bf29aab3bad81c0f99b471b1ed0d42804c13abbe Mon Sep 17 00:00:00 2001 From: Aaron Bohy Date: Fri, 14 Apr 2017 16:46:03 +0200 Subject: [FIX] web: BasicModel: transmit fieldsInfo to children The fieldsInfo attribute on the basic model's datapoints is used by to determine which fields need to be loaded for a record/list of records. This information wasn't correctly specified in some cases. As a result, the display_name of many2many fields (e.g. using widget many2many_tags) inside list views were fetched, and thus empty tags were displayed. No test is added by this commit, as it already makes a broken test pass (this test didn't pass since the previous commit). --- addons/web/static/src/js/views/basic/basic_model.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 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 754f318f01c..12d6a1b27cf 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -1619,6 +1619,9 @@ var BasicModel = AbstractModel.extend({ var field = list.fields[fieldName]; var fieldInfo = list.fieldsInfo[list.viewType][fieldName]; var view = fieldInfo.views && fieldInfo.views[fieldInfo.mode]; + var fieldsInfo = view ? view.fieldsInfo : fieldInfo.fieldsInfo; + var fields = view ? view.fields : fieldInfo.relatedFields; + var viewType = view ? view.type : fieldInfo.viewType; // step 1: collect ids var ids = []; @@ -1626,12 +1629,13 @@ var BasicModel = AbstractModel.extend({ var record = self.localData[dataPoint]; ids = _.unique(ids.concat(record.data[fieldName] || [])); var m2mList = self._makeDataPoint({ - fieldsInfo: fieldInfo.fieldsInfo || view && view.fieldsInfo, - fields: fieldInfo.relatedFields || view && view.fields, + fieldsInfo: fieldsInfo, + fields: fields, modelName: field.relation, res_ids: record.data[fieldName], static: true, type: 'list', + viewType: viewType, }); record.data[fieldName] = m2mList.id; }); @@ -1653,8 +1657,9 @@ var BasicModel = AbstractModel.extend({ return self._makeDataPoint({ modelName: field.relation, data: result, - fieldsInfo: fieldInfo.fieldsInfo || view && view.fieldsInfo, - fields: fieldInfo.relatedFields || view && view.fields, + fields: fields, + fieldsInfo: fieldsInfo, + viewType: viewType, }); }); -- cgit v1.2.3