summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2012-04-05 11:50:09 +0200
committerXavier Morel <xmo@openerp.com>2012-04-05 11:50:09 +0200
commita029cf244f9433c39b4e5d2729d9d5113eba02ba (patch)
treecfb82d02a9ab70b8b9ccbe5a5d5c9454a7df47f2 /addons/web/static/src/js
parent239a118913049dfb29d517a06dde3ce6d23745e8 (diff)
[FIX] in a compound context, context n+1 has all of its preceding siblings in its evaluation context
bzr revid: xmo@openerp.com-20120405095009-v2i1xg8gf6lvigjv
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/core.js14
1 files changed, 6 insertions, 8 deletions
diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js
index abbcc780ee2..18b04f3b734 100644
--- a/addons/web/static/src/js/core.js
+++ b/addons/web/static/src/js/core.js
@@ -625,24 +625,22 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp.
var result_context = _.extend({}, this.user_context),
self = this;
_(contexts).each(function (ctx) {
+ var evaluated = ctx;
// __eval_context evaluations can lead to some of `contexts`'s
// values being null, skip them as well as empty contexts
if (_.isEmpty(ctx)) { return; }
switch(ctx.__ref) {
case 'context':
- _.extend(result_context, py.eval(
- ctx.__debug, evaluation_context));
+ evaluated = py.eval(ctx.__debug, evaluation_context);
break;
case 'compound_context':
var eval_context = self.test_eval_contexts([ctx.__eval_context]);
- _.extend(
- result_context, self.test_eval_contexts(
- ctx.__contexts, _.extend(
- {}, evaluation_context, eval_context)));
+ evaluated = self.test_eval_contexts(
+ ctx.__contexts, _.extend({}, evaluation_context, eval_context));
break;
- default:
- _.extend(result_context, ctx);
}
+ _.extend(evaluation_context, evaluated);
+ _.extend(result_context, evaluated);
});
return result_context;
},