From 07bafcb79214e1f1edbb70e509a0df3c866bb208 Mon Sep 17 00:00:00 2001
From: Victor Feyens
Date: Tue, 14 Jul 2020 14:55:00 +0000
Subject: [PATCH] [IMP] stock: correct default_get behavior
Leave the management of default_* context keys to the orm level.
closes odoo/odoo#54246
Related: odoo/enterprise#11754
Signed-off-by: Victor Feyens (vfe)
---
addons/stock/wizard/stock_backorder_confirmation.py | 11 +++++++----
.../wizard/stock_backorder_confirmation_views.xml | 10 ++++++++++
addons/stock/wizard/stock_immediate_transfer.py | 11 +++++++----
.../stock/wizard/stock_immediate_transfer_views.xml | 10 ++++++++++
4 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/addons/stock/wizard/stock_backorder_confirmation.py b/addons/stock/wizard/stock_backorder_confirmation.py
index 5866b463930..3705efec9c7 100644
--- a/addons/stock/wizard/stock_backorder_confirmation.py
+++ b/addons/stock/wizard/stock_backorder_confirmation.py
@@ -28,10 +28,13 @@ class StockBackorderConfirmation(models.TransientModel):
@api.model
def default_get(self, fields):
res = super().default_get(fields)
- if 'backorder_confirmation_line_ids' in fields:
- if self.env.context.get('default_pick_ids'):
- res['pick_ids'] = self.env.context['default_pick_ids']
- res['backorder_confirmation_line_ids'] = [(0, 0, {'to_backorder': True, 'picking_id': pick_id[1]}) for pick_id in res['pick_ids']]
+ if 'backorder_confirmation_line_ids' in fields and res.get('pick_ids'):
+ res['backorder_confirmation_line_ids'] = [
+ (0, 0, {'to_backorder': True, 'picking_id': pick_id})
+ for pick_id in res['pick_ids'][0][2]
+ ]
+ # default_get returns x2m values as [(6, 0, ids)]
+ # because of webclient limitations
return res
def process(self):
diff --git a/addons/stock/wizard/stock_backorder_confirmation_views.xml b/addons/stock/wizard/stock_backorder_confirmation_views.xml
index c44f1b7147f..1258b70ffae 100644
--- a/addons/stock/wizard/stock_backorder_confirmation_views.xml
+++ b/addons/stock/wizard/stock_backorder_confirmation_views.xml
@@ -15,6 +15,16 @@
+
+
+
>
diff --git a/addons/stock/wizard/stock_immediate_transfer.py b/addons/stock/wizard/stock_immediate_transfer.py
index fc494d8d5bc..2afbc6337b0 100644
--- a/addons/stock/wizard/stock_immediate_transfer.py
+++ b/addons/stock/wizard/stock_immediate_transfer.py
@@ -28,10 +28,13 @@ class StockImmediateTransfer(models.TransientModel):
@api.model
def default_get(self, fields):
res = super().default_get(fields)
- if 'immediate_transfer_line_ids' in fields:
- if self.env.context.get('default_pick_ids'):
- res['pick_ids'] = self.env.context['default_pick_ids']
- res['immediate_transfer_line_ids'] = [(0, 0, {'to_immediate': True, 'picking_id': pick_id[1]}) for pick_id in res['pick_ids']]
+ if 'immediate_transfer_line_ids' in fields and res.get('pick_ids'):
+ res['immediate_transfer_line_ids'] = [
+ (0, 0, {'to_immediate': True, 'picking_id': pick_id})
+ for pick_id in res['pick_ids'][0][2]
+ ]
+ # default_get returns x2m values as [(6, 0, ids)]
+ # because of webclient limitations
return res
def process(self):
diff --git a/addons/stock/wizard/stock_immediate_transfer_views.xml b/addons/stock/wizard/stock_immediate_transfer_views.xml
index 73c9ec8910b..ef562bfda76 100644
--- a/addons/stock/wizard/stock_immediate_transfer_views.xml
+++ b/addons/stock/wizard/stock_immediate_transfer_views.xml
@@ -9,6 +9,16 @@
You have not recorded done quantities yet, by clicking on apply Odoo will process all the quantities.
+
+
+
>