[IMP] Changed way the sidebar is created.

bzr revid: nicolas.vanhoren@openerp.com-20110406144751-or0o86gvqe5sa21h
This commit is contained in:
niv-openerp
2011-04-06 16:47:51 +02:00
parent 1f2ebfbc44
commit a7db336065
5 changed files with 22 additions and 28 deletions
+4 -14
View File
@@ -458,8 +458,8 @@ class FormView(View):
_cp_path = "/base/formview"
@openerpweb.jsonrequest
def load(self, req, model, view_id, sidebar=False):
fields_view = self.fields_view_get(req.session, model, view_id, 'form', sidebar)
def load(self, req, model, view_id, toolbar=False):
fields_view = self.fields_view_get(req.session, model, view_id, 'form', toolbar=toolbar)
return {'fields_view': fields_view}
@@ -467,8 +467,8 @@ class ListView(View):
_cp_path = "/base/listview"
@openerpweb.jsonrequest
def load(self, req, model, view_id, sidebar=False):
fields_view = self.fields_view_get(req.session, model, view_id, 'tree', sidebar)
def load(self, req, model, view_id, toolbar=False):
fields_view = self.fields_view_get(req.session, model, view_id, 'tree', toolbar=toolbar)
return {'fields_view': fields_view}
@@ -479,16 +479,6 @@ class SearchView(View):
def load(self, req, model, view_id):
fields_view = self.fields_view_get(req.session, model, view_id, 'search')
return {'fields_view': fields_view}
class SideBar(View):
_cp_path = "/base/sidebar"
@openerpweb.jsonrequest
def get_actions(self, request, model, object_id=0):
#probably useless now
result = load_actions_from_ir_values(request, "action", "client_action_multi",
[[model, object_id]], False, {})
return result
class Action(openerpweb.Controller):
+3 -2
View File
@@ -30,7 +30,8 @@ openerp.base.FormView = openerp.base.Controller.extend( /** @lends openerp.base
},
start: function() {
//this.log('Starting FormView '+this.model+this.view_id)
return this.rpc("/base/formview/load", {"model": this.model, "view_id": this.view_id}, this.on_loaded);
return this.rpc("/base/formview/load", {"model": this.model, "view_id": this.view_id,
toolbar:!!this.view_manager.sidebar}, this.on_loaded);
},
on_loaded: function(data) {
var self = this;
@@ -53,7 +54,7 @@ openerp.base.FormView = openerp.base.Controller.extend( /** @lends openerp.base
// sidebar stuff
if (this.view_manager.sidebar) {
this.view_manager.sidebar.load_multi_actions();
this.view_manager.sidebar.set_toolbar(data.fields_view.toolbar);
}
},
on_record_loaded: function(record) {
+5 -3
View File
@@ -24,7 +24,8 @@ openerp.base.ListView = openerp.base.Controller.extend({
},
start: function() {
//this.log('Starting ListView '+this.model+this.view_id)
return this.rpc("/base/listview/load", {"model": this.model, "view_id":this.view_id}, this.on_loaded);
return this.rpc("/base/listview/load", {"model": this.model, "view_id":this.view_id,
toolbar:!!this.view_manager.sidebar}, this.on_loaded);
},
on_loaded: function(data) {
this.fields_view = data.fields_view;
@@ -68,8 +69,9 @@ openerp.base.ListView = openerp.base.Controller.extend({
}).trigger('resize');
// sidebar stuff
if (this.view_manager.sidebar)
this.view_manager.sidebar.load_multi_actions();
if (this.view_manager.sidebar) {
this.view_manager.sidebar.set_toolbar(data.fields_view.toolbar);
}
},
do_fill_table: function(records) {
this.$table
+9 -8
View File
@@ -288,16 +288,17 @@ openerp.base.Sidebar = openerp.base.BaseWidget.extend({
this.view_manager = view_manager;
this.sections = [];
},
load_multi_actions: function() {
if (_.detect(this.sections, function(x) {return x.type=="multi_actions";}) != undefined)
return;
set_toolbar: function(toolbar) {
debugger;
this.sections = [];
var self = this;
this.rpc("/base/sidebar/get_actions",
{"model": this.view_manager.dataset.model}, function(result) {
self.sections.push({type: "multi_actions", elements:
_.map(result, function(x) {return {text:x[2].name, action:x}; })});
self.refresh();
_.each(["print", "action", "relate"], function(type) {
if (toolbar[type].length == 0)
return;
var section = {elements:toolbar[type]};
self.sections.push(section);
});
this.refresh();
},
refresh: function() {
this.$element.html(QWeb.render("ViewManager.sidebar.internal", _.extend({_:_}, this)));
+1 -1
View File
@@ -453,7 +453,7 @@
<ul>
<t t-set="j" t-value="0"/>
<t t-foreach="section.elements" t-as="element">
<li><a t-att-data-i="i" t-att-data-j="j" href="#"><t t-esc="element.text"/></a></li>
<li><a t-att-data-i="i" t-att-data-j="j" href="#"><t t-esc="element.name"/></a></li>
<t t-set="j+1" t-value="0"/>
</t>
</ul>