diff options
| author | Xavier Morel <xmo@openerp.com> | 2012-04-05 11:50:09 +0200 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2012-04-05 11:50:09 +0200 |
| commit | a029cf244f9433c39b4e5d2729d9d5113eba02ba (patch) | |
| tree | cfb82d02a9ab70b8b9ccbe5a5d5c9454a7df47f2 /addons/web/static/src/js/core.js | |
| parent | 239a118913049dfb29d517a06dde3ce6d23745e8 (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/core.js')
| -rw-r--r-- | addons/web/static/src/js/core.js | 14 |
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; }, |
