[IMP] stock_picking_ui: back and forward picking navigation

bzr revid: fva@openerp.com-20131001092122-l4rgh0ynch45huai
This commit is contained in:
Frédéric van der Essen
2013-10-01 11:21:22 +02:00
parent 9cfe28cd1f
commit b87e0a1790
3 changed files with 76 additions and 10 deletions
+13 -5
View File
@@ -47,7 +47,7 @@
}
.oe_pick_widget .oe_pick_button{
display: inline-block;
min-width: 120px;
min-width: 64px;
padding: 5px;
font-size: 18px;
border-radius: 3px;
@@ -62,8 +62,15 @@
cursor: pointer;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
}
.oe_pick_widget .oe_pick_button.oe_disabled {
cursor: default;
background: linear-gradient(#666666, #474747);
border: solid 1px rgb(44, 44, 44);
color: rgb(53, 53, 53);
box-shadow: 0px 1px 1px rgba(255, 255, 255, 0.32) inset;
}
.oe_pick_widget .oe_pick_button:active{
.oe_pick_widget .oe_pick_button:not(.oe_disabled):active{
background: rgb(92, 84, 133);
box-shadow: 0px 1px 0px 1px rgba(0,0,0,0.3) inset;
margin: 11px 6px;
@@ -78,9 +85,10 @@
}
.oe_pick_widget .oe_pick_right_toolbar{
float: right;
}
.oe_pick_widget .oe_pick_right_toolbar .oe_pick_button{
margin-right: 10px;
border-left: solid 1px black;
padding-left: 8px;
padding-right: 8px;
margin-left: 8px;
}
.oe_pick_widget .oe_pick_col_small{ width: 60px; }
.oe_pick_widget .oe_pick_col_medium{ width: 100px; }
+58 -5
View File
@@ -104,6 +104,7 @@ function openerp_picking_widgets(instance){
var self = this;
this.picking = null;
this.pickings = [];
this.movelines = null;
this.operations = null;
this.packages = null;
@@ -125,10 +126,12 @@ function openerp_picking_widgets(instance){
if(picking_id){
var picking = new instance.web.Model('stock.picking').call('read',[[picking_id], []]);
}else{
var picking = new instance.web.Model('stock.picking')
var picking = new $.Deferred();
var pickings = new instance.web.Model('stock.picking')
.call('get_picking_for_packing_ui')
.then(function(picking_id){
if(!picking_id){
.then(function(picking_ids){
console.log('Picking Ids',picking_ids);
if(!picking_ids || picking_ids.length === 0){
(new instance.web.Dialog(self,{
title: _t('No Picking Available'),
buttons: [{
@@ -139,9 +142,13 @@ function openerp_picking_widgets(instance){
}]
}, _t('<p>We could not find a picking to display.</p>'))).open();
return (new $.Deferred()).reject();
picking.reject();
}else{
return new instance.web.Model('stock.picking').call('read',[[picking_id],[]]);
self.pickings = picking_ids;
new instance.web.Model('stock.picking').call('read',[[picking_ids[0]],[]])
.then(function(pick){
picking.resolve(pick);
});
}
});
}
@@ -188,6 +195,8 @@ function openerp_picking_widgets(instance){
this.$('.js_pick_quit').click(function(){ self.quit(); });
this.$('.js_pick_pack').click(function(){ self.pack(); });
this.$('.js_pick_done').click(function(){ self.done(); });
this.$('.js_pick_prev').click(function(){ self.picking_prev(); });
this.$('.js_pick_next').click(function(){ self.picking_next(); });
$.when(this.loaded).done(function(){
self.picking_editor = new module.PickingEditorWidget(self);
@@ -198,6 +207,19 @@ function openerp_picking_widgets(instance){
self.package_selector = new module.PackageSelectorWidget(self);
self.package_selector.replace(self.$('.oe_placeholder_package_selector'));
if( self.picking.id === self.pickings[0]){
self.$('.js_pick_prev').addClass('oe_disabled');
}else{
self.$('.js_pick_prev').removeClass('oe_disabled');
}
if( self.picking.id === self.pickings[self.pickings.length-1] ){
self.$('.js_pick_next').addClass('oe_disabled');
}else{
self.$('.js_pick_next').removeClass('oe_disabled');
}
});
@@ -213,6 +235,17 @@ function openerp_picking_widgets(instance){
self.picking_editor.renderElement();
self.package_editor.renderElement();
self.package_selector.renderElement();
if( self.picking.id === self.pickings[0]){
self.$('.js_pick_prev').addClass('oe_disabled');
}else{
self.$('.js_pick_prev').removeClass('oe_disabled');
}
if( self.picking.id === self.pickings[self.pickings.length-1] ){
self.$('.js_pick_next').addClass('oe_disabled');
}else{
self.$('.js_pick_next').removeClass('oe_disabled');
}
});
},
scan: function(ean){
@@ -257,6 +290,26 @@ function openerp_picking_widgets(instance){
return self.do_action(action);
});
},
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]);
return;
}
}
}
},
picking_prev: function(){
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]);
return;
}
}
}
},
copy_package: function(package_id){
var self = this;
console.log('Copy Package:',package_id);
+5
View File
@@ -154,6 +154,9 @@
</div>
</t>
<t t-name='PickingMenuWidget'>
</t>
<t t-name="PickingMainWidget">
<div class='oe_pick_widget'>
<table class='oe_pick_layout'>
@@ -161,6 +164,7 @@
<td class='oe_pick_header'>
<div class='oe_pick_right_toolbar'>
<div class='oe_pick_button js_pick_menu'> Menu </div>
<div class='oe_pick_button js_pick_quit'> Quit </div>
</div>
@@ -183,6 +187,7 @@
<div class='oe_placeholder_picking_editor'></div>
<div class='oe_placeholder_package_editor'></div>
<div class='oe_placeholder_package_selector'></div>
<div class='oe_placeholder_menu'></div>
</div>
</div>