[IMP] Viewmanager sets dataset's domain & context on_search

bzr revid: fme@openerp.com-20111003135203-d3p18cfdh5jko976
This commit is contained in:
Fabien Meghazi 2011-10-03 15:52:03 +02:00
parent 59e70f4544
commit 3e1b007478
5 changed files with 7 additions and 26 deletions

View File

@ -281,12 +281,13 @@ db.web.ViewManager = db.web.Widget.extend(/** @lends db.web.ViewManager# */{
var self = this, var self = this,
controller = this.views[this.active_view].controller; controller = this.views[this.active_view].controller;
if (domains || contexts) { if (domains || contexts) {
//if ((!domains || !domains.length) && (!contexts || !contexts.length) && (!groupbys || !groupbys.length) { }
this.rpc('/web/session/eval_domain_and_context', { this.rpc('/web/session/eval_domain_and_context', {
domains: [this.dataset.get_domain()].concat(domains || []), domains: [this.action.domain || []].concat(domains || []),
contexts: [this.dataset.get_context()].concat(contexts || []), contexts: [this.action.context || {}].concat(contexts || []),
group_by_seq: groupbys || [] group_by_seq: groupbys || []
}, function (results) { }, function (results) {
self.dataset.context = results.context;
self.dataset.domain = results.domain;
controller.do_search(results.domain, results.context, results.group_by); controller.do_search(results.domain, results.context, results.group_by);
self.last_search = [results.domain, results.context, results.group_by]; self.last_search = [results.domain, results.context, results.group_by];
}); });

View File

@ -15,8 +15,6 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({
this.model = dataset.model; this.model = dataset.model;
this.fields_view = {}; this.fields_view = {};
this.view_id = view_id; this.view_id = view_id;
this.domain = this.dataset.domain || [];
this.context = this.dataset.context || {};
this.has_been_loaded = $.Deferred(); this.has_been_loaded = $.Deferred();
this.creating_event_id = null; this.creating_event_id = null;
this.dataset_events = []; this.dataset_events = [];
@ -296,12 +294,8 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({
scheduler.clearAll(); scheduler.clearAll();
$.when(this.has_been_loaded).then(function() { $.when(this.has_been_loaded).then(function() {
// TODO: handle non-empty results.group_by with read_group // TODO: handle non-empty results.group_by with read_group
self.context = context;
self.domain = domain;
self.dataset.read_slice(_.keys(self.fields), { self.dataset.read_slice(_.keys(self.fields), {
offset: 0, offset: 0,
context: context,
domain: domain,
limit: self.limit limit: self.limit
}, function(events) { }, function(events) {
self.dataset_events = events; self.dataset_events = events;

View File

@ -509,15 +509,7 @@ init: function(parent, dataset, view_id) {
do_search: function (domains, contexts, groupbys) { do_search: function (domains, contexts, groupbys) {
var self = this; var self = this;
this.grp = groupbys; this.grp = groupbys;
return this.rpc('/web/session/eval_domain_and_context', { self.reload_gantt();
domains: domains,
contexts: contexts,
group_by_seq: groupbys
}, function (results) {
self.dataset.context = results.context;
self.dataset.domain = results.domain;
self.reload_gantt();
});
} }
}); });

View File

@ -369,10 +369,7 @@ openerp.web_graph.GraphView = openerp.web.View.extend({
} else { } else {
this.abscissa = this.first_field; this.abscissa = this.first_field;
} }
this.dataset.read_slice(this.list_fields(), { this.dataset.read_slice(this.list_fields(), {}, $.proxy(this, 'schedule_chart'));
context: context,
domain: domain
}, $.proxy(this, 'schedule_chart'));
} }
}); });
}; };

View File

@ -446,10 +446,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
}, },
function (dataset) { function (dataset) {
self.groups = []; self.groups = [];
self.dataset.read_slice([], { self.dataset.read_slice([], {}, function(records) {
domain: domain,
context: context
}, function(records) {
if (records.length) { if (records.length) {
self.all_display_data = [{'records': records, 'value':false, 'header' : false, 'ids': self.dataset.ids}]; self.all_display_data = [{'records': records, 'value':false, 'header' : false, 'ids': self.dataset.ids}];
} else { } else {