[FIX] get_* methods on FilterGroup
bzr revid: xmo@openerp.com-20120503192645-8x63l5rnwz2vg2yp
This commit is contained in:
parent
64538c181e
commit
94624b74b0
|
@ -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();
|
||||
|
|
|
@ -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([]);
|
||||
|
|
Loading…
Reference in New Issue