[WIP]barcode interface: minor changes
authorCedric Snauwaert <csn@openerp.com>
Tue, 18 Mar 2014 15:51:43 +0000 (16:51 +0100)
committerCedric Snauwaert <csn@openerp.com>
Tue, 18 Mar 2014 15:51:43 +0000 (16:51 +0100)
bzr revid: csn@openerp.com-20140318155143-59lpf2jq7p8ivagb

addons/stock/controllers/main.py
addons/stock/static/src/js/widgets.js
addons/stock/static/src/xml/picking.xml

index 8f94a51..b3975e2 100644 (file)
@@ -48,21 +48,24 @@ html_template = """<!DOCTYPE html>
 
 class BarcodeController(http.Controller):
 
-    @http.route('/barcode/web/<int:page>', type='http', auth='none')
+    @http.route(['/barcode/web/','/barcode/web/<int:picking_type_id>','/barcode/web/<int:picking_type_id>/<int:picking_id>'], type='http', auth='user')
     def a(self, debug=False, **k):
-        
         if not request.session.uid:
             return http.local_redirect('/web/login?redirect=/barcode/web')
 
         js_list = manifest_list('js',db=request.db, debug=debug)
         css_list =   manifest_list('css',db=request.db, debug=debug)
 
-        #get request path
-        url_picking_type_id = request.httprequest.path[len('/barcode/web/'):]
-        try:
-            active_id = int(url_picking_type_id)
-        except Exception:
-            active_id = 0
+        #get picking information from url
+        additional_context = {}
+        action = 'stock.menu'
+        active_id = k.get('picking_type_id', False)
+        picking_id = k.get('picking_id', False)
+        if active_id:
+            action = 'stock.ui'
+            additional_context['active_id'] = int(active_id)
+        if picking_id:
+            additional_context['picking_id'] = int(picking_id)
         
         js = "\n".join('<script type="text/javascript" src="%s"></script>' % i for i in js_list)
         #css = "\n".join('<link rel="stylesheet" href="%s">' % i for i in css_list)
@@ -73,9 +76,10 @@ class BarcodeController(http.Controller):
             'init': """
                      var wc = new s.web.WebClient();
                      wc.show_application = function(){
-                         wc.action_manager.do_action("stock.ui", {additional_context: {'active_id': %s}});
+                         wc.action_manager.do_action("%s", {additional_context: %s});
                      };
+                     wc.do_push_state = function(){};
                      wc.appendTo($(document.body));
-                     """ % active_id
+                     """ % (action, additional_context)
         }
         return r
index 4eaeb88..3e68e6a 100644 (file)
@@ -108,10 +108,14 @@ function openerp_picking_widgets(instance){
             this.$('#js_select').change(function(){
                 var selection = $(this)[0].value
                 if (selection === "ToDo"){
+                    self.getParent().$('.js_pick_pack').removeClass('hidden')
+                    self.getParent().$('.js_drop_down').removeClass('hidden')
                     self.$('.js_pack_op_line.processed').addClass('hidden')
                     self.$('.js_pack_op_line:not(.processed)').removeClass('hidden')
                 }
                 else{
+                    self.getParent().$('.js_pick_pack').addClass('hidden')
+                    self.getParent().$('.js_drop_down').addClass('hidden')
                     self.$('.js_pack_op_line.processed').removeClass('hidden')
                     self.$('.js_pack_op_line:not(.processed)').addClass('hidden')
                 }
@@ -375,6 +379,10 @@ function openerp_picking_widgets(instance){
     module.PickingMainWidget = module.MobileWidget.extend({
         template: 'PickingMainWidget',
         init: function(parent,params){
+            $(window).bind('hashchange', function(){
+                console.log($.bbq.getState());
+                console.log('test');
+            });
             this._super(parent,params);
             var self = this;
 
@@ -682,12 +690,17 @@ function openerp_picking_widgets(instance){
                     }
                 });
         },
+        do_load_state: function(){
+            debugger;
+        },
         picking_next: function(){
             for(var i = 0; i < this.pickings.length; i++){
                 if(this.pickings[i] === this.picking.id){
                     if(i < this.pickings.length -1){
-                        this.refresh_ui(this.pickings[i+1]);
+                        window.location = '/barcode/web/?picking_type_id='+this.picking_type_id+'&picking_id='+this.pickings[i+1];
                         return;
+                        // this.refresh_ui(this.pickings[i+1]);
+                        // return;
                     }
                 }
             }
@@ -696,7 +709,8 @@ function openerp_picking_widgets(instance){
             for(var i = 0; i < this.pickings.length; i++){
                 if(this.pickings[i] === this.picking.id){
                     if(i > 0){
-                        this.refresh_ui(this.pickings[i-1]);
+                        window.location = '/barcode/web/?picking_type_id='+this.picking_type_id+'&picking_id='+this.pickings[i-1];
+                        // this.refresh_ui(this.pickings[i-1]);
                         return;
                     }
                 }
index c059422..561d5fd 100644 (file)
                         </span>
                     </div>
                     <button type="button" class='btn btn-default js_pick_pack pull-right'> Put in Pack </button>
-                    <button type="button" class='btn btn-default js_drop_down pull-right'> Mark all as processed </button>
+                    <button type="button" class='btn btn-default js_drop_down pull-right'> Process </button>
                     <div class='oe_placeholder_picking_editor'/>
                 </div>
             </div>