},
complete: function (needle) {
var self = this;
- // TODO: context
// FIXME: "concurrent" searches (multiple requests, mis-ordered responses)
+ var context = instance.web.pyeval.eval(
+ 'contexts', [this.view.dataset.get_context()]);
return this.model.call('name_search', [], {
name: needle,
args: instance.web.pyeval.eval(
- 'domains', this.attrs.domain ? [this.attrs.domain] : []),
+ 'domains', this.attrs.domain ? [this.attrs.domain] : [], context),
limit: 8,
- context: {}
+ context: context
}).then(function (results) {
if (_.isEmpty(results)) { return null; }
return [{label: self.attrs.string}].concat(
return [[42, "choice 1"], [43, "choice @"]];
});
- var view = {inputs: []};
+ var view = {inputs: [], dataset: {get_context: function () {}}};
var f = new instance.web.search.ManyToOneField(
{attrs: {string: 'Dummy'}}, {relation: 'dummy.model'}, view);
return f.complete("bob")
strictEqual(kwargs.name, 'bob');
return [];
});
- var view = {inputs: []};
+ var view = {inputs: [], dataset: {get_context: function () {}}};
var f = new instance.web.search.ManyToOneField(
{attrs: {string: 'Dummy'}}, {relation: 'dummy.model'}, view);
return f.complete("bob")
name: 'bob',
limit: 8,
args: [['foo', '=', 'bar']],
- context: {},
+ context: {flag: 1},
}, "should use filtering domain");
return [[42, "Match"]];
});
- var view = {inputs: []};
+ var view = {
+ inputs: [],
+ dataset: {get_context: function () { return {flag: 1}; }}
+ };
var f = new instance.web.search.ManyToOneField(
{attrs: {string: 'Dummy', domain: '[["foo", "=", "bar"]]'}},
{relation: 'dummy.model'}, view);