From 94624b74b0ab62497682013c5b6083c98ce2bc42 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 3 May 2012 21:26:45 +0200 Subject: [PATCH] [FIX] get_* methods on FilterGroup bzr revid: xmo@openerp.com-20120503192645-8x63l5rnwz2vg2yp --- addons/web/static/src/js/search.js | 6 ++--- addons/web/static/test/search.js | 36 ++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index c0542585f40..780e096b34c 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -905,7 +905,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in * @return {*} combined contexts of the enabled filters in this group */ get_context: function (facet) { - var contexts = _(facet.values).chain() + var contexts = facet.values.chain() .map(function (f) { return f.get('value').attrs.context; }) .reject(_.isEmpty) .value(); @@ -923,7 +923,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in * @return {Array} enabled filters in this group */ get_groupby: function (facet) { - return _(facet.values).chain() + return facet.values.chain() .map(function (f) { return f.get('value').attrs.context; }) .reject(_.isEmpty) .value(); @@ -935,7 +935,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in * @return {*} combined domains of the enabled filters in this group */ get_domain: function (facet) { - var domains = _(facet.values).chain() + var domains = facet.values.chain() .map(function (f) { return f.get('value').attrs.domain; }) .reject(_.isEmpty) .value(); diff --git a/addons/web/static/test/search.js b/addons/web/static/test/search.js index 9b0205c462a..ca34750ad1c 100644 --- a/addons/web/static/test/search.js +++ b/addons/web/static/test/search.js @@ -881,6 +881,42 @@ $(document).ready(function () { }, "custom context's self should be label"); }); + asyncTest('FilterGroup', 6, function () { + var view = {inputs: []}; + var filter_a = new instance.web.search.Filter( + {attrs: {name: 'a', context: 'c1', domain: 'd1'}}, view); + var filter_b = new instance.web.search.Filter( + {attrs: {name: 'b', context: 'c2', domain: 'd2'}}, view); + var filter_c = new instance.web.search.Filter( + {attrs: {name: 'c', context: 'c3', domain: 'd3'}}, view); + var group = new instance.web.search.FilterGroup( + [filter_a, filter_b, filter_c], view); + group.facet_for_defaults({a: true, c: true}) + .always(start) + .fail(function (error) { ok(false, error && error.message); }) + .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.__ref, 'compound_domain', + "domain should be compound"); + deepEqual(domain.__domains, [ + ['|'], 'd1', 'd3' + ], "domain should OR filter domains"); + ok(!domain.get_eval_context(), "domain should have no evaluation context"); + var context = group.get_context(model); + equal(context.__ref, 'compound_context', + "context should be compound"); + deepEqual(context.__contexts, [ + 'c1', 'c3' + ], "context should merge all filter contexts"); + ok(!context.get_eval_context(), "context should have no evaluation context"); + }); + }); + module('drawer', { setup: function () { instance = window.openerp.init([]);