From f134387531fbffd1101f025dae1187c8bfd71ae3 Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Fri, 24 Apr 2015 12:14:17 +0200 Subject: [PATCH] [FIX] website_crm_score: avoid traceback when domain filter cannot evaluate the tem_user domain. Now, we manage more case: Domain with tuple like [('country_id', '=', 'Belgium')] Domain with Boolean Value like [('country_id', '=', False)] If domain cannot be evaluate we display error in the filter --- .../static/src/js/display_filters.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/addons/website_crm_score/static/src/js/display_filters.js b/addons/website_crm_score/static/src/js/display_filters.js index 020b7d7d46c..95428ff1e5c 100644 --- a/addons/website_crm_score/static/src/js/display_filters.js +++ b/addons/website_crm_score/static/src/js/display_filters.js @@ -23,14 +23,25 @@ openerp.website_crm_score = function(instance) { var val = this.field.raw_value; var self = this; if (val) { - val = eval(val); + // This widget is temporary + // To keep only while the widget domain filter doesn't exist ! + + // Ugly hack to have (more) python domains which can be evaluated in JS + val = val.replace('(', '[').replace(')', ']').replace('False', 'false').replace('True', 'true') + try { + val = eval(val); + } + catch(err) { + // don't block UI if domain is not evaluable in JS + console.debug(err.message); + val = [['error','=', err.message]]; + } if (val.length <= this.MAX_LEN) { var i = 0; while (i < val.length) { var res = this.interpret(val, i); i = res[0]; var $span = res[1]; - // var $span = '

' + res[1] + '

'; self.$el.append($span); } }