diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index 5b59c7d6912..3917f342391 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -1009,6 +1009,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in get_context: function (facet) { var contexts = facet.values.chain() .map(function (f) { return f.get('value').attrs.context; }) + .without('{}') .reject(_.isEmpty) .value(); @@ -1027,6 +1028,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in get_groupby: function (facet) { return facet.values.chain() .map(function (f) { return f.get('value').attrs.context; }) + .without('{}') .reject(_.isEmpty) .value(); }, @@ -1039,6 +1041,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in get_domain: function (facet) { var domains = facet.values.chain() .map(function (f) { return f.get('value').attrs.domain; }) + .without('[]') .reject(_.isEmpty) .value(); diff --git a/addons/web/static/test/search.js b/addons/web/static/test/search.js index 45f6d2c715b..db9e7aa3ed9 100644 --- a/addons/web/static/test/search.js +++ b/addons/web/static/test/search.js @@ -845,6 +845,42 @@ openerp.testing.section('search-serialization', { ok(!context.get_eval_context(), "context should have no evaluation context"); }); }); + test('Empty filter domains', {asserts: 4}, function (instance) { + var view = {inputs: [], query: {on: function () {}}}; + var filter_a = new instance.web.search.Filter( + {attrs: {name: 'a', context: '{}', domain: '[]'}}, view); + var filter_b = new instance.web.search.Filter( + {attrs: {name: 'b', context: '{}', domain: '[]'}}, view); + var filter_c = new instance.web.search.Filter( + {attrs: {name: 'c', context: '{b: 42}', domain: '[["a", "=", 3]]'}}, view); + var group = new instance.web.search.FilterGroup( + [filter_a, filter_b, filter_c], view); + var t1 = group.facet_for_defaults({a: true, c: true}) + .done(function (facet) { + var model = facet; + if (!(model instanceof instance.web.search.Facet)) { + model = new instance.web.search.Facet(facet); + } + + var domain = group.get_domain(model); + deepEqual(domain, '[["a", "=", 3]]', "domain should ignore empties"); + var context = group.get_context(model); + deepEqual(context, '{b: 42}', "context should ignore empties"); + }); + var t2 = group.facet_for_defaults({a: true, b: true}) + .done(function (facet) { + var model = facet; + if (!(model instanceof instance.web.search.Facet)) { + model = new instance.web.search.Facet(facet); + } + + var domain = group.get_domain(model); + equal(domain, null, "domain should ignore empties"); + var context = group.get_context(model); + equal(context, null, "context should ignore empties"); + }); + return $.when(t1, t2); + }); }); openerp.testing.section('removal', { dependencies: ['web.search'], diff --git a/addons/web/static/test/test.html.THIS b/addons/web/static/test/test.html.THIS deleted file mode 100644 index f5f29f88d7c..00000000000 --- a/addons/web/static/test/test.html.THIS +++ /dev/null @@ -1,63 +0,0 @@ - - - - - OpenERP Web Test Suite - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - -