if (this.headless) {
this.ready.resolve();
} else {
- var load_view = this.rpc("/web/searchview/load", {
+ var load_view = this.rpc("/web/view/load", {
model: this.model,
view_id: this.view_id,
- context: this.dataset.get_context() });
-
- $.when(load_view)
- .then(function(r) {
- self.search_view_loaded(r)
- }, function () {
- self.ready.reject.apply(null, arguments);
- });
+ view_type: 'search',
+ context: instance.web.pyeval.eval(
+ 'context', this.dataset.get_context())
+ });
+
+ $.when(load_view).then(function (r) {
+ return self.search_view_loaded(r)
+ }).fail(function () {
+ self.ready.reject.apply(null, arguments);
+ });
}
instance.web.bus.on('click', this, function(ev) {
search_view_loaded: function(data) {
var self = this;
- this.fields_view = data.fields_view;
- if (data.fields_view.type !== 'search' ||
- data.fields_view.arch.tag !== 'search') {
+ this.fields_view = data;
+ if (data.type !== 'search' ||
+ data.arch.tag !== 'search') {
throw new Error(_.str.sprintf(
"Got non-search view after asking for a search view: type %s, arch root %s",
- data.fields_view.type, data.fields_view.arch.tag));
+ data.type, data.arch.tag));
}
this.make_widgets(
- data.fields_view['arch'].children,
- data.fields_view.fields);
+ data['arch'].children,
+ data.fields);
this.add_common_inputs();
var drawer_started = $.when.apply(
null, _(this.select_for_drawer()).invoke(
'appendTo', this.$('.oe_searchview_drawer')));
+
// load defaults
var defaults_fetched = $.when.apply(null, _(this.inputs).invoke(
this.$el.on('click', 'h4', function () {
self.$el.toggleClass('oe_opened');
});
- // FIXME: local eval of domain and context to get rid of special endpoint
- return this.rpc('/web/searchview/get_filters', {
- model: this.view.model
- })
+ return this.model.call('get_filters', [this.view.model])
.then(this.proxy('set_filters'))
- .then(function () {
- self.is_ready.resolve(null);
- }, function () {
- self.is_ready.reject();
- });
+ .done(function () { self.is_ready.resolve(); })
+ .fail(function () { self.is_ready.reject.apply(self.is_ready, arguments); });
},
/**
* Special implementation delaying defaults until CustomFilters is loaded
});
return $.when(
this._super(),
- this.rpc("/web/searchview/fields_get", {model: this.view.model}).done(function(data) {
+ new instance.web.Model(this.view.model).call('fields_get').done(function(data) {
self.fields = _.extend({
id: { string: 'ID', type: 'id' }
}, data.fields);
instance.dummy = {};
instance.dummy.DummyWidget = instance.web.search.Field.extend(
dummy_widget_attributes || {});
- if (!('/web/searchview/load' in instance.session.responses)) {
- instance.session.responses['/web/searchview/load'] = function () {
- return {fields_view: {
+ if (!('/web/view/load' in instance.session.responses)) {
+ instance.session.responses['/web/view/load'] = function () {
+ return {
type: 'search',
fields: {
dummy: {type: 'char', string: "Dummy"}
children: []
}]
}
- }};
+ };
};
}
- instance.session.responses['/web/searchview/get_filters'] = function () {
+ instance.session.responses['ir.filters:get_filters'] = function () {
return [];
};
- instance.session.responses['/web/searchview/fields_get'] = function () {
+ instance.session.responses['dummy.model:fields_get'] = function () {
return {fields: {
dummy: {type: 'char', string: 'Dummy'}
}};
rpc: 'mock',
templates: true,
setup: function (instance, $s, mock) {
- mock('/web/searchview/load', function () {
+ mock('/web/view/load', function () {
// view with a single group of filters
- return {fields_view: {
+ return {
type: 'search',
fields: {},
arch: {
children: []
}]
}
- }};
+ };
});
}
}, function (test) {
}, function (test) {
test('checkboxing', {asserts: 6}, function (instance, $fix, mock) {
var view = makeSearchView(instance);
- mock('/web/searchview/get_filters', function () {
+ mock('ir.filters:get_filters', function () {
return [{ name: "filter name", user_id: 42 }];
});
});
test('removal', {asserts: 1}, function (instance, $fix, mock) {
var view = makeSearchView(instance);
- mock('/web/searchview/get_filters', function () {
+ mock('ir.filters:get_filters', function () {
return [{ name: "filter name", user_id: 42 }];
});