From ef3200f9409aab0a247e234154f18e77087ece05 Mon Sep 17 00:00:00 2001 From: Adrien Dieudonne Date: Wed, 19 Apr 2017 10:49:07 +0200 Subject: [FIX] web: BasicModel: id in evalContext The evalContext contains the current data of a record (the value of the fields that have been fetched, i.e. the ones referenced in the view). However, 'id' is a particular field that should always be in the evalContext, even if not in the view (as we always know its value). Before this rev., 'id' was in the evalContext if the record already existed, but not on new records, so it crashed on new records if 'id' was used in the context defined on a field's node. --- addons/web/static/src/js/views/basic/basic_model.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (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 1d04ab7a206..c7e24f1da64 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -1903,7 +1903,8 @@ var BasicModel = AbstractModel.extend({ _getEvalContext: function (element) { var evalContext = this.get(element.id, {raw: true, noUnsetNumeric: true}).data; evalContext.active_model = element.model; - evalContext.active_id = evalContext.id || false; + evalContext.id = evalContext.id || false; + evalContext.active_id = evalContext.id; evalContext.active_ids = evalContext.id ? [evalContext.id] : []; if (element.parentID) { var parent = this.get(element.parentID, {raw: true}); -- cgit v1.2.3