summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2011-08-10 17:42:38 +0200
committerFabien Meghazi <fme@openerp.com>2011-08-10 17:42:38 +0200
commit0cd8a79009b8df3a880c72dab2a66da16e4f9a5f (patch)
tree0877988fb26f80a716fd5b044c308a509c3e04c6
parent84dde229f0d1e12e6825d2768fffc93bffe00535 (diff)
[ADD] Added exception throw when domain references an unknown field
bzr revid: fme@openerp.com-20110810154238-h18xpgjtbhqlr67d
-rw-r--r--addons/base/static/src/js/form.js22
1 files changed, 13 insertions, 9 deletions
diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js
index 3aea5828038..25bc55a86fb 100644
--- a/addons/base/static/src/js/form.js
+++ b/addons/base/static/src/js/form.js
@@ -510,36 +510,40 @@ openerp.base.form.compute_domain = function(expr, fields) {
}
}
- var field = fields[ex[0]].get_value ? fields[ex[0]].get_value() : fields[ex[0]].value;
+ var field = fields[ex[0]];
+ if (!field) {
+ throw new Error("Domain references unknown field : " + ex[0]);
+ }
+ var field_value = field.get_value ? fields[ex[0]].get_value() : fields[ex[0]].value;
var op = ex[1];
var val = ex[2];
switch (op.toLowerCase()) {
case '=':
case '==':
- stack.push(field == val);
+ stack.push(field_value == val);
break;
case '!=':
case '<>':
- stack.push(field != val);
+ stack.push(field_value != val);
break;
case '<':
- stack.push(field < val);
+ stack.push(field_value < val);
break;
case '>':
- stack.push(field > val);
+ stack.push(field_value > val);
break;
case '<=':
- stack.push(field <= val);
+ stack.push(field_value <= val);
break;
case '>=':
- stack.push(field >= val);
+ stack.push(field_value >= val);
break;
case 'in':
- stack.push(_(val).contains(field));
+ stack.push(_(val).contains(field_value));
break;
case 'not in':
- stack.push(!_(val).contains(field));
+ stack.push(!_(val).contains(field_value));
break;
default:
this.log("Unsupported operator in modifiers :", op);