summaryrefslogtreecommitdiff
path: root/addons/base/static/src/js
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2011-06-28 14:17:47 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2011-06-28 14:17:47 +0200
commit46d87b34b0c1db9af6feb2fd4e9981360fea3977 (patch)
treea63e22d14941493955c85508c9090cab48468f7b /addons/base/static/src/js
parent90abbfc60f331fd9256b14cffc9a2204ee97ae60 (diff)
[imp] added evaluation context to compound context
bzr revid: nicolas.vanhoren@openerp.com-20110628121747-e8y1y3avglshzxv1
Diffstat (limited to 'addons/base/static/src/js')
-rw-r--r--addons/base/static/src/js/data.js8
-rw-r--r--addons/base/static/src/js/form.js5
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";