diff --git a/web_advanced_search/__openerp__.py b/web_advanced_search/__openerp__.py index f74f45b4..ff4e5a3e 100644 --- a/web_advanced_search/__openerp__.py +++ b/web_advanced_search/__openerp__.py @@ -5,7 +5,7 @@ { "name": "Search x2x fields", - "version": "10.0.2.0.2", + "version": "10.0.2.0.3", "author": "Therp BV, " "Tecnativa, " "Odoo Community Association (OCA)", diff --git a/web_advanced_search/static/src/js/web_advanced_search_x2x.js b/web_advanced_search/static/src/js/web_advanced_search_x2x.js index 33153cc4..06cc0eea 100644 --- a/web_advanced_search/static/src/js/web_advanced_search_x2x.js +++ b/web_advanced_search/static/src/js/web_advanced_search_x2x.js @@ -12,6 +12,7 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { var SearchView = require('web.SearchView'); var data = require('web.data'); var core = require('web.core'); + var pyeval = require('web.pyeval'); var X2XAdvancedSearchPropositionMixin = { template: "web_advanced_search_x2x.proposition", @@ -37,9 +38,11 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { 'value': 'domain', 'text': core._lt('is in selection'), }); // Avoid hiding filter when using special widgets - this.events["click"] = function (event) { - event.stopPropagation(); - } + this.events = $.extend({}, this.events, { + click: function (event) { + event.stopPropagation(); + }, + }); return this._super.apply(this, arguments); }, @@ -83,6 +86,16 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { } var widget = this.x2x_widget(); if (!widget) return; + + var field_domain = this.field.domain; + if (typeof field_domain === 'string') { + try { + pyeval.eval('domain', field_domain); + } catch(e) { + this.field.domain = "[]"; + } + } + this._x2x_field = new widget( this, this.x2x_field_create_options()