From 1cd0a138cf1288e2bbcad0ad261696b7ff727feb Mon Sep 17 00:00:00 2001 From: yhu-odoo Date: Wed, 18 Nov 2020 14:03:06 +0000 Subject: [PATCH] [REF] delivery, stock: make delivery product a new model Currently, delivery packaging and product packaging share the same model product.packaging. In this commit, we make delivery packaging a new model stock.package.type. The code is also moved to stock instead of delivery for compatibility reasons. Task 2341820 PR #63516 ENT PR odoo/enterprise#15363 UPG PR odoo/upgrade#2040 --- addons/delivery/__manifest__.py | 2 +- addons/delivery/models/__init__.py | 2 +- addons/delivery/models/stock_package_type.py | 19 ++++++ addons/delivery/models/stock_picking.py | 8 +-- addons/delivery/views/delivery_view.xml | 27 +------- .../delivery/views/product_packaging_view.xml | 68 ------------------- .../views/stock_package_type_views.xml | 32 +++++++++ .../wizard/choose_delivery_package.py | 16 ++--- .../wizard/choose_delivery_package_views.xml | 8 +-- addons/stock/__manifest__.py | 1 + addons/stock/models/__init__.py | 1 + .../models/stock_package_type.py} | 33 ++++----- addons/stock/models/stock_quant.py | 4 +- .../stock/report/report_package_barcode.xml | 8 +-- addons/stock/security/ir.model.access.csv | 2 + .../stock/views/stock_package_type_view.xml | 65 ++++++++++++++++++ addons/stock/views/stock_quant_views.xml | 6 +- 17 files changed, 162 insertions(+), 140 deletions(-) create mode 100644 addons/delivery/models/stock_package_type.py delete mode 100644 addons/delivery/views/product_packaging_view.xml create mode 100644 addons/delivery/views/stock_package_type_views.xml rename addons/{delivery/models/product_packaging.py => stock/models/stock_package_type.py} (59%) create mode 100644 addons/stock/views/stock_package_type_view.xml diff --git a/addons/delivery/__manifest__.py b/addons/delivery/__manifest__.py index c129bb5b768..3f2b11d2372 100644 --- a/addons/delivery/__manifest__.py +++ b/addons/delivery/__manifest__.py @@ -17,7 +17,6 @@ invoices from picking, the system is able to add and compute the shipping line. 'data': [ 'security/ir.model.access.csv', 'security/delivery_carrier_security.xml', - 'views/product_packaging_view.xml', 'views/product_template_view.xml', 'views/delivery_view.xml', 'views/partner_view.xml', @@ -29,6 +28,7 @@ invoices from picking, the system is able to add and compute the shipping line. 'views/res_config_settings_views.xml', 'wizard/choose_delivery_package_views.xml', 'wizard/choose_delivery_carrier_views.xml', + 'views/stock_package_type_views.xml', ], 'demo': ['data/delivery_demo.xml'], 'installable': True, diff --git a/addons/delivery/models/__init__.py b/addons/delivery/models/__init__.py index 72fc7b3a04b..8335f4645fc 100644 --- a/addons/delivery/models/__init__.py +++ b/addons/delivery/models/__init__.py @@ -3,9 +3,9 @@ from . import delivery_carrier from . import delivery_grid -from . import product_packaging from . import product_template from . import sale_order from . import partner from . import stock_picking from . import stock_move +from . import stock_package_type diff --git a/addons/delivery/models/stock_package_type.py b/addons/delivery/models/stock_package_type.py new file mode 100644 index 00000000000..0c67988dd82 --- /dev/null +++ b/addons/delivery/models/stock_package_type.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, fields, api + + +class PackageType(models.Model): + _inherit = 'stock.package.type' + + shipper_package_code = fields.Char('Carrier Code') + package_carrier_type = fields.Selection([('none', 'No carrier integration')], string='Carrier', default='none') + + @api.onchange('package_carrier_type') + def _onchange_carrier_type(self): + carrier_id = self.env['delivery.carrier'].search([('delivery_type', '=', self.package_carrier_type)], limit=1) + if carrier_id: + self.shipper_package_code = carrier_id._get_default_custom_package_code() + else: + self.shipper_package_code = False diff --git a/addons/delivery/models/stock_picking.py b/addons/delivery/models/stock_picking.py index 9c3b46844dd..70729b91b19 100644 --- a/addons/delivery/models/stock_picking.py +++ b/addons/delivery/models/stock_picking.py @@ -133,13 +133,13 @@ class StockPicking(models.Model): res = super(StockPicking, self)._pre_put_in_pack_hook(move_line_ids) if not res: if self.carrier_id: - return self._set_delivery_packaging() + return self._set_delivery_package_type() else: return res - def _set_delivery_packaging(self): - """ This method returns an action allowing to set the product packaging and the shipping weight - on the stock.quant.package. + def _set_delivery_package_type(self): + """ This method returns an action allowing to set the package type and the shipping weight + on the stock.quant.package. """ self.ensure_one() view_id = self.env.ref('delivery.choose_delivery_package_view_form').id diff --git a/addons/delivery/views/delivery_view.xml b/addons/delivery/views/delivery_view.xml index 21bf97e1cfd..3592f8b8df7 100644 --- a/addons/delivery/views/delivery_view.xml +++ b/addons/delivery/views/delivery_view.xml @@ -1,19 +1,6 @@ - - - - Delivery Packages - product.packaging - [('product_id', '=', False)] - - - - - delivery.carrier.tree delivery.carrier @@ -175,7 +162,7 @@ - + @@ -278,7 +265,6 @@ -