From a7db3360655d814d42553005a7ab91766f9dee87 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 6 Apr 2011 16:47:51 +0200 Subject: [PATCH] [IMP] Changed way the sidebar is created. bzr revid: nicolas.vanhoren@openerp.com-20110406144751-or0o86gvqe5sa21h --- addons/base/controllers/main.py | 18 ++++-------------- addons/base/static/src/js/form.js | 5 +++-- addons/base/static/src/js/list.js | 8 +++++--- addons/base/static/src/js/views.js | 17 +++++++++-------- addons/base/static/src/xml/base.xml | 2 +- 5 files changed, 22 insertions(+), 28 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 1ae2a7c1fad..4e27f3cb4a8 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -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): diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 9c2c7004c1e..12609ed9c53 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -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) { diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 273f71ed82d..7f88b13e979 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -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 diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 11d4aa5c66a..05a07eb99a1 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -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))); diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index b26c481327a..fbf3f728ef3 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -453,7 +453,7 @@