diff --git a/addons/stock/controllers/main.py b/addons/stock/controllers/main.py index 8f94a517d69..b3975e29597 100644 --- a/addons/stock/controllers/main.py +++ b/addons/stock/controllers/main.py @@ -48,21 +48,24 @@ html_template = """ class BarcodeController(http.Controller): - @http.route('/barcode/web/', type='http', auth='none') + @http.route(['/barcode/web/','/barcode/web/','/barcode/web//'], 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('' % i for i in js_list) #css = "\n".join('' % 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 diff --git a/addons/stock/static/src/js/widgets.js b/addons/stock/static/src/js/widgets.js index 4eaeb88db79..3e68e6a0187 100644 --- a/addons/stock/static/src/js/widgets.js +++ b/addons/stock/static/src/js/widgets.js @@ -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; } } diff --git a/addons/stock/static/src/xml/picking.xml b/addons/stock/static/src/xml/picking.xml index c0594225dd7..561d5fdbb61 100644 --- a/addons/stock/static/src/xml/picking.xml +++ b/addons/stock/static/src/xml/picking.xml @@ -222,7 +222,7 @@ - +