diff options
| author | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-06-28 14:17:47 +0200 |
|---|---|---|
| committer | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-06-28 14:17:47 +0200 |
| commit | 46d87b34b0c1db9af6feb2fd4e9981360fea3977 (patch) | |
| tree | a63e22d14941493955c85508c9090cab48468f7b /addons/base/static/src | |
| parent | 90abbfc60f331fd9256b14cffc9a2204ee97ae60 (diff) | |
[imp] added evaluation context to compound context
bzr revid: nicolas.vanhoren@openerp.com-20110628121747-e8y1y3avglshzxv1
Diffstat (limited to 'addons/base/static/src')
| -rw-r--r-- | addons/base/static/src/js/data.js | 8 | ||||
| -rw-r--r-- | addons/base/static/src/js/form.js | 5 |
2 files changed, 11 insertions, 2 deletions
diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index b3ddd7750c8..d9b2ca752c2 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -590,6 +590,7 @@ openerp.base.ReadOnlyDataSetSearch = openerp.base.DataSetSearch.extend({ openerp.base.CompoundContext = function() { this.__ref = "compound_context"; this.__contexts = []; + this.__eval_context = null; var self = this; _.each(arguments, function(x) { self.add(x); @@ -602,6 +603,13 @@ openerp.base.CompoundContext.prototype.add = function(context) { this.__contexts.push(context); return this; }; +openerp.base.CompoundContext.prototype.set_eval_context = function(eval_context) { + this.__eval_context = eval_context; + return this; +}; +openerp.base.CompoundContext.prototype.get_eval_context = function() { + return this.__eval_context; +}; openerp.base.CompoundDomain = function() { this.__ref = "compound_domain"; diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index ca06bcebcf8..0ad5f6729e4 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1088,7 +1088,8 @@ var build_relation_context = function(relation_field) { var action = relation_field.view.view_manager.action || {}; var a_context = action.context || {}; var f_context = relation_field.field.context || {}; - var ctx = new openerp.base.CompoundContext(a_context).add(f_context); + var fields_values = relation_field.view.get_fields_values(); + var ctx = new openerp.base.CompoundContext(a_context).add(f_context).set_eval_context(fields_values); return ctx; } @@ -1310,7 +1311,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ if (this.tmp_value instanceof Array) { return this.tmp_value[0]; } - return this.tmp_value; + return this.tmp_value ? this.tmp_value : false; } if (this.value === undefined) throw "theorically unreachable state"; |
