← Back to team overview

openerp-dev-web team mailing list archive

lp:~openerp-dev/openobject-client-web/trunk-proto61-actions-niv into lp:~openerp-dev/openobject-client-web/trunk-proto61

 

Nicolas Vanhoren (OpenERP) has proposed merging lp:~openerp-dev/openobject-client-web/trunk-proto61-actions-niv into lp:~openerp-dev/openobject-client-web/trunk-proto61.

Requested reviews:
  Antony Lesuisse (al-openerp)
  OpenERP R&D Team (openerp-dev)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client-web/trunk-proto61-actions-niv/+merge/56582

Sidebar improvements.
-- 
https://code.launchpad.net/~openerp-dev/openobject-client-web/trunk-proto61-actions-niv/+merge/56582
Your team OpenERP R&D Team is requested to review the proposed merge of lp:~openerp-dev/openobject-client-web/trunk-proto61-actions-niv into lp:~openerp-dev/openobject-client-web/trunk-proto61.
=== modified file 'addons/base/controllers/main.py'
--- addons/base/controllers/main.py	2011-04-06 13:29:34 +0000
+++ addons/base/controllers/main.py	2011-04-06 14:51:27 +0000
@@ -354,9 +354,9 @@
         return {'result': r}
 
 class View(openerpweb.Controller):
-    def fields_view_get(self, session, model, view_id, view_type, transform=True):
+    def fields_view_get(self, session, model, view_id, view_type, transform=True, toolbar=False, submenu=False):
         Model = session.model(model)
-        r = Model.fields_view_get(view_id, view_type)
+        r = Model.fields_view_get(view_id, view_type, {}, toolbar, submenu)
         if transform:
             context = {} # TODO: dict(ctx_sesssion, **ctx_action)
             xml = self.transform_view(r['arch'], session, context)
@@ -460,8 +460,8 @@
     _cp_path = "/base/formview"
 
     @openerpweb.jsonrequest
-    def load(self, req, model, view_id):
-        fields_view = self.fields_view_get(req.session, model, view_id, 'form')
+    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}
 
 
@@ -469,8 +469,8 @@
     _cp_path = "/base/listview"
 
     @openerpweb.jsonrequest
-    def load(self, req, model, view_id):
-        fields_view = self.fields_view_get(req.session, model, view_id, 'tree')
+    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}
 
 
@@ -481,15 +481,6 @@
     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):
-        result = load_actions_from_ir_values(request, "action", "client_action_multi",
-                                             [[model, object_id]], False, {})
-        return result
 
 
 class Action(openerpweb.Controller):

=== modified file 'addons/base/static/src/js/form.js'
--- addons/base/static/src/js/form.js	2011-04-06 09:56:42 +0000
+++ addons/base/static/src/js/form.js	2011-04-06 14:51:27 +0000
@@ -30,7 +30,8 @@
     },
     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 @@
 
         // 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) {

=== modified file 'addons/base/static/src/js/list.js'
--- addons/base/static/src/js/list.js	2011-04-05 15:14:40 +0000
+++ addons/base/static/src/js/list.js	2011-04-06 14:51:27 +0000
@@ -24,7 +24,8 @@
     },
     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 @@
         }).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

=== modified file 'addons/base/static/src/js/views.js'
--- addons/base/static/src/js/views.js	2011-04-06 00:51:36 +0000
+++ addons/base/static/src/js/views.js	2011-04-06 14:51:27 +0000
@@ -280,16 +280,17 @@
         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)));

=== modified file 'addons/base/static/src/xml/base.xml'
--- addons/base/static/src/xml/base.xml	2011-04-06 13:45:31 +0000
+++ addons/base/static/src/xml/base.xml	2011-04-06 14:51:27 +0000
@@ -478,7 +478,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>


Follow ups