[ADD] set 'default_' key in context when searching on a single existing record in an m2o, by default
bzr revid: xmo@openerp.com-20120626091307-45vygymu8y1198ar
This commit is contained in:
parent
f20cf64bdb
commit
1f84b7a37d
|
@ -1530,6 +1530,15 @@ instance.web.search.ManyToOneField = instance.web.search.CharField.extend({
|
||||||
return [[name, '=', facetValue.get('value')]];
|
return [[name, '=', facetValue.get('value')]];
|
||||||
}
|
}
|
||||||
return this._super(name, operator, facetValue);
|
return this._super(name, operator, facetValue);
|
||||||
|
},
|
||||||
|
get_context: function (facet) {
|
||||||
|
var values = facet.values;
|
||||||
|
if (!this.attrs.context && values.length === 1) {
|
||||||
|
var c = {};
|
||||||
|
c['default_' + this.attrs.name] = values.at(0).get('value');
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
return this._super(facet);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -843,6 +843,25 @@ $(document).ready(function () {
|
||||||
|
|
||||||
deepEqual(f.get_domain(facet), [['foo', '=', 42]],
|
deepEqual(f.get_domain(facet), [['foo', '=', 42]],
|
||||||
"m2o should use identity if default domain");
|
"m2o should use identity if default domain");
|
||||||
|
deepEqual(f.get_context(facet), {default_foo: 42},
|
||||||
|
"m2o should use value as context default");
|
||||||
|
});
|
||||||
|
test("M2O default multiple values", function () {
|
||||||
|
var f = new instance.web.search.ManyToOneField(
|
||||||
|
{}, {name: 'foo'}, {inputs: []});
|
||||||
|
var facet = new instance.web.search.Facet({
|
||||||
|
field: f,
|
||||||
|
values: [
|
||||||
|
{label: "Foo", value: 42},
|
||||||
|
{label: "Bar", value: 36}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
deepEqual(f.get_domain(facet).__domains,
|
||||||
|
[['|'], [['foo', '=', 42]], [['foo', '=', 36]]],
|
||||||
|
"m2o should or multiple values");
|
||||||
|
equal(f.get_context(facet), null,
|
||||||
|
"m2o should not have default context in case of multiple values");
|
||||||
});
|
});
|
||||||
test("M2O custom operator", function () {
|
test("M2O custom operator", function () {
|
||||||
var f = new instance.web.search.ManyToOneField(
|
var f = new instance.web.search.ManyToOneField(
|
||||||
|
@ -854,6 +873,8 @@ $(document).ready(function () {
|
||||||
|
|
||||||
deepEqual(f.get_domain(facet), [['foo', 'boos', 'Foo']],
|
deepEqual(f.get_domain(facet), [['foo', 'boos', 'Foo']],
|
||||||
"m2o should use label with custom operators");
|
"m2o should use label with custom operators");
|
||||||
|
deepEqual(f.get_context(facet), {default_foo: 42},
|
||||||
|
"m2o should use value as context default");
|
||||||
});
|
});
|
||||||
test("M2O custom domain & context", function () {
|
test("M2O custom domain & context", function () {
|
||||||
var f = new instance.web.search.ManyToOneField({attrs: {
|
var f = new instance.web.search.ManyToOneField({attrs: {
|
||||||
|
|
Loading…
Reference in New Issue