[MERGE] Merged with trunk.
bzr revid: tde@openerp.com-20120405165537-rplz2s9iu7v1j7um bzr revid: tde@openerp.com-20120406103048-e5u8mk717r1uth4y
This commit is contained in:
@@ -14,6 +14,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
|
||||
readonly : false,
|
||||
form_template: "FormView",
|
||||
display_name: _lt('Form'),
|
||||
view_type: "form",
|
||||
/**
|
||||
* @constructs openerp.web.FormView
|
||||
* @extends openerp.web.View
|
||||
@@ -53,27 +54,6 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
|
||||
this.on_change_mutex = new $.Mutex();
|
||||
this.reload_mutex = new $.Mutex();
|
||||
},
|
||||
start: function() {
|
||||
this._super();
|
||||
return this.init_view();
|
||||
},
|
||||
init_view: function() {
|
||||
if (this.embedded_view) {
|
||||
var def = $.Deferred().then(this.on_loaded);
|
||||
var self = this;
|
||||
$.async_when().then(function() {def.resolve(self.embedded_view);});
|
||||
return def.promise();
|
||||
} else {
|
||||
var context = new openerp.web.CompoundContext(this.dataset.get_context());
|
||||
return this.rpc("/web/view/load", {
|
||||
"model": this.model,
|
||||
"view_id": this.view_id,
|
||||
"view_type": "form",
|
||||
toolbar: this.options.sidebar,
|
||||
context: context
|
||||
}, this.on_loaded);
|
||||
}
|
||||
},
|
||||
destroy: function() {
|
||||
if (this.sidebar) {
|
||||
this.sidebar.attachments.destroy();
|
||||
@@ -134,6 +114,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
|
||||
}]);
|
||||
}
|
||||
this.has_been_loaded.resolve();
|
||||
return $.when();
|
||||
},
|
||||
|
||||
do_load_state: function(state, warm) {
|
||||
|
||||
@@ -136,7 +136,6 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
||||
* @returns {$.Deferred} loading promise
|
||||
*/
|
||||
start: function() {
|
||||
this._super();
|
||||
this.$element.addClass('oe-listview');
|
||||
return this.reload_view(null, null, true);
|
||||
},
|
||||
|
||||
@@ -39,7 +39,6 @@ openerp.web.TreeView = openerp.web.View.extend(/** @lends openerp.web.TreeView#
|
||||
},
|
||||
|
||||
start: function () {
|
||||
this._super();
|
||||
return this.rpc("/web/treeview/load", {
|
||||
model: this.model,
|
||||
view_id: this.view_id,
|
||||
|
||||
@@ -112,12 +112,13 @@ session.web.ActionManager = session.web.OldWidget.extend({
|
||||
}
|
||||
var type = action.type.replace(/\./g,'_');
|
||||
var popup = action.target === 'new';
|
||||
var inline = action.target === 'inline';
|
||||
action.flags = _.extend({
|
||||
views_switcher : !popup,
|
||||
search_view : !popup,
|
||||
action_buttons : !popup,
|
||||
sidebar : !popup,
|
||||
pager : !popup,
|
||||
views_switcher : !popup && !inline,
|
||||
search_view : !popup && !inline,
|
||||
action_buttons : !popup && !inline,
|
||||
sidebar : !popup && !inline,
|
||||
pager : !popup && !inline,
|
||||
display_title : !popup
|
||||
}, action.flags || {});
|
||||
if (!(type in this)) {
|
||||
@@ -1029,12 +1030,43 @@ session.web.View = session.web.Widget.extend(/** @lends session.web.View# */{
|
||||
template: "EmptyComponent",
|
||||
// name displayed in view switchers
|
||||
display_name: '',
|
||||
/**
|
||||
* Define a view type for each view to allow automatic call to fields_view_get.
|
||||
*/
|
||||
view_type: undefined,
|
||||
init: function(parent, dataset, view_id, options) {
|
||||
this._super(parent);
|
||||
this.dataset = dataset;
|
||||
this.view_id = view_id;
|
||||
this.set_default_options(options);
|
||||
},
|
||||
start: function() {
|
||||
return this.load_view();
|
||||
},
|
||||
load_view: function() {
|
||||
if (this.embedded_view) {
|
||||
var def = $.Deferred().pipe(this.on_loaded);
|
||||
var self = this;
|
||||
$.async_when().then(function() {def.resolve(self.embedded_view);});
|
||||
return def.promise();
|
||||
} else {
|
||||
var context = new session.web.CompoundContext(this.dataset.get_context());
|
||||
if (! this.view_type)
|
||||
console.warn("view_type is not defined", this);
|
||||
return this.rpc("/web/view/load", {
|
||||
"model": this.dataset.model,
|
||||
"view_id": this.view_id,
|
||||
"view_type": this.view_type,
|
||||
toolbar: this.options.sidebar,
|
||||
context: context
|
||||
}).pipe(this.on_loaded);
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Called after a successful call to fields_view_get.
|
||||
* Must return a promise.
|
||||
*/
|
||||
on_loaded: function(fields_view_get) {},
|
||||
set_default_options: function(options) {
|
||||
this.options = options || {};
|
||||
_.defaults(this.options, {
|
||||
|
||||
@@ -294,7 +294,6 @@ openerp.web_dashboard.ConfigOverview = openerp.web.View.extend({
|
||||
this.dataset = new openerp.web.DataSetSearch(this, 'ir.actions.todo');
|
||||
},
|
||||
start: function () {
|
||||
this._super();
|
||||
var self = this;
|
||||
return this.user.read_index(['groups_id']).pipe(function(record) {
|
||||
var todos_filter = [
|
||||
@@ -383,7 +382,6 @@ openerp.web_dashboard.Widget = openerp.web.View.extend(/** @lends openerp.web_da
|
||||
this.widget_id = options.widget_id;
|
||||
},
|
||||
start: function () {
|
||||
this._super();
|
||||
var ds = new openerp.web.DataSet(this, 'res.widget');
|
||||
return ds.read_ids([this.widget_id], ['title']).then(this.on_widget_loaded);
|
||||
},
|
||||
|
||||
@@ -22,7 +22,6 @@ openerp.web.DiagramView = openerp.web.View.extend({
|
||||
this.ids = this.dataset.ids;
|
||||
},
|
||||
start: function() {
|
||||
this._super();
|
||||
return this.rpc("/web_diagram/diagram/load", {"model": this.model, "view_id": this.view_id}, this.on_loaded);
|
||||
},
|
||||
|
||||
|
||||
@@ -10,20 +10,19 @@ openerp.web.views.add('gantt', 'openerp.web_gantt.GanttView');
|
||||
openerp.web_gantt.GanttView = openerp.web.View.extend({
|
||||
display_name: _lt('Gantt'),
|
||||
template: "GanttView",
|
||||
view_type: "gantt",
|
||||
init: function() {
|
||||
this._super.apply(this, arguments);
|
||||
this.has_been_loaded = $.Deferred();
|
||||
this.chart_id = _.uniqueId();
|
||||
},
|
||||
start: function() {
|
||||
return $.when(this.rpc("/web/view/load", {"model": this.dataset.model, "view_id": this.view_id, "view_type": "gantt"}),
|
||||
this.rpc("/web/searchview/fields_get", {"model": this.dataset.model})).pipe(this.on_loaded);
|
||||
},
|
||||
on_loaded: function(fields_view, fields_get) {
|
||||
this.fields_view = fields_view[0];
|
||||
this.fields = fields_get[0].fields;
|
||||
|
||||
this.has_been_loaded.resolve();
|
||||
on_loaded: function(fields_view_get, fields_get) {
|
||||
var self = this;
|
||||
this.fields_view = fields_view_get;
|
||||
return this.rpc("/web/searchview/fields_get", {"model": this.dataset.model}).pipe(function(fields_get) {
|
||||
self.fields = fields_get.fields;
|
||||
self.has_been_loaded.resolve();
|
||||
});
|
||||
},
|
||||
do_search: function (domains, contexts, group_bys) {
|
||||
var self = this;
|
||||
|
||||
@@ -17,6 +17,7 @@ var QWeb = openerp.web.qweb,
|
||||
openerp.web.views.add('graph', 'openerp.web_graph.GraphView');
|
||||
openerp.web_graph.GraphView = openerp.web.View.extend({
|
||||
display_name: _lt('Graph'),
|
||||
view_type: "graph",
|
||||
|
||||
init: function(parent, dataset, view_id, options) {
|
||||
this._super(parent);
|
||||
@@ -39,27 +40,13 @@ openerp.web_graph.GraphView = openerp.web.View.extend({
|
||||
}
|
||||
this._super();
|
||||
},
|
||||
start: function() {
|
||||
on_loaded: function(fields_view_get) {
|
||||
var self = this;
|
||||
this._super();
|
||||
var loaded;
|
||||
if (this.embedded_view) {
|
||||
loaded = $.when([self.embedded_view]);
|
||||
} else {
|
||||
loaded = this.rpc('/web/view/load', {
|
||||
model: this.dataset.model,
|
||||
view_id: this.view_id,
|
||||
view_type: 'graph'
|
||||
});
|
||||
}
|
||||
return $.when(
|
||||
this.dataset.call_and_eval('fields_get', [false, {}], null, 1),
|
||||
loaded)
|
||||
.then(function (fields_result, view_result) {
|
||||
self.fields = fields_result[0];
|
||||
self.fields_view = view_result[0];
|
||||
self.on_loaded(self.fields_view);
|
||||
});
|
||||
self.fields_view = fields_view_get;
|
||||
return this.dataset.call_and_eval('fields_get', [false, {}], null, 1).pipe(function(fields_result) {
|
||||
self.fields = fields_result;
|
||||
return self.on_loaded_2();
|
||||
});
|
||||
},
|
||||
/**
|
||||
* Returns all object fields involved in the graph view
|
||||
@@ -72,7 +59,7 @@ openerp.web_graph.GraphView = openerp.web.View.extend({
|
||||
}
|
||||
return fs;
|
||||
},
|
||||
on_loaded: function() {
|
||||
on_loaded_2: function() {
|
||||
this.chart = this.fields_view.arch.attrs.type || 'pie';
|
||||
this.orientation = this.fields_view.arch.attrs.orientation || 'vertical';
|
||||
|
||||
@@ -91,6 +78,7 @@ openerp.web_graph.GraphView = openerp.web.View.extend({
|
||||
}, this);
|
||||
this.ordinate = this.columns[0].name;
|
||||
this.is_loaded.resolve();
|
||||
return $.when();
|
||||
},
|
||||
schedule_chart: function(results) {
|
||||
var self = this;
|
||||
|
||||
@@ -9,6 +9,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
|
||||
template: "KanbanView",
|
||||
display_name: _lt('Kanban'),
|
||||
default_nr_columns: 3,
|
||||
view_type: "kanban",
|
||||
init: function (parent, dataset, view_id, options) {
|
||||
this._super(parent);
|
||||
this.set_default_options(options);
|
||||
@@ -34,23 +35,14 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
|
||||
this.currently_dragging = {};
|
||||
this.limit = options.limit || 80;
|
||||
},
|
||||
start: function() {
|
||||
this._super();
|
||||
on_loaded: function(data) {
|
||||
this.$element.find('button.oe_kanban_button_new').click(this.do_add_record);
|
||||
this.$groups = this.$element.find('.oe_kanban_groups tr');
|
||||
var context = new openerp.web.CompoundContext(this.dataset.get_context());
|
||||
return this.rpc('/web/view/load', {
|
||||
'model': this.dataset.model,
|
||||
'view_id': this.view_id,
|
||||
'view_type': 'kanban',
|
||||
context: context
|
||||
}, this.on_loaded);
|
||||
},
|
||||
on_loaded: function(data) {
|
||||
this.fields_view = data;
|
||||
this.fields_keys = _.keys(this.fields_view.fields);
|
||||
this.add_qweb_template();
|
||||
this.has_been_loaded.resolve();
|
||||
return $.when();
|
||||
},
|
||||
add_qweb_template: function() {
|
||||
for (var i=0, ii=this.fields_view.arch.children.length; i < ii; i++) {
|
||||
|
||||
Reference in New Issue
Block a user