[IMP] Changed way the sidebar is created.
bzr revid: nicolas.vanhoren@openerp.com-20110406144751-or0o86gvqe5sa21h
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)));
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user