From d3d4e7346efef0e97e690ddf91d8d8d29f93b3dc Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Tue, 29 Mar 2022 11:36:59 +0200 Subject: [PATCH] [MIG] sale_order_add_bom from v10 to v14 --- sale_order_add_bom/__init__.py | 4 +--- sale_order_add_bom/__manifest__.py | 9 ++++---- sale_order_add_bom/models/__init__.py | 1 + sale_order_add_bom/{ => models}/mrp_bom.py | 4 +--- .../security/ir.model.access.csv | 3 +++ sale_order_add_bom/views/sale_order.xml | 4 +--- sale_order_add_bom/views/stock_picking.xml | 2 +- sale_order_add_bom/wizard/__init__.py | 2 -- .../wizard/sale_add_phantom_bom.py | 21 +++++++++++-------- .../wizard/sale_add_phantom_bom_view.xml | 14 +++++++------ 10 files changed, 33 insertions(+), 31 deletions(-) create mode 100644 sale_order_add_bom/models/__init__.py rename sale_order_add_bom/{ => models}/mrp_bom.py (75%) create mode 100644 sale_order_add_bom/security/ir.model.access.csv diff --git a/sale_order_add_bom/__init__.py b/sale_order_add_bom/__init__.py index 545b9e4..9b42961 100644 --- a/sale_order_add_bom/__init__.py +++ b/sale_order_add_bom/__init__.py @@ -1,4 +1,2 @@ -# -*- coding: utf-8 -*- - -from . import mrp_bom +from . import models from . import wizard diff --git a/sale_order_add_bom/__manifest__.py b/sale_order_add_bom/__manifest__.py index c9280e8..accd0ed 100644 --- a/sale_order_add_bom/__manifest__.py +++ b/sale_order_add_bom/__manifest__.py @@ -1,10 +1,10 @@ -# -*- coding: utf-8 -*- -# © 2016 Akretion (Alexis de Lattre ) +# Copyright 2016-2022 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { 'name': 'Sale Order Add Bom', - 'version': '10.0.1.0.0', + 'version': '14.0.1.0.0', 'category': 'Sales', 'license': 'AGPL-3', 'summary': 'Wizard to select a bom from a sale order', @@ -17,12 +17,13 @@ This module has been written by Alexis de Lattre from Akretion . """, 'author': 'Akretion', - 'website': 'http://www.akretion.com', + 'website': 'https://github.com/akretion/odoo-usability', 'depends': ['sale', 'mrp'], 'data': [ 'wizard/sale_add_phantom_bom_view.xml', 'views/sale_order.xml', 'views/stock_picking.xml', + 'security/ir.model.access.csv', ], 'installable': True, } diff --git a/sale_order_add_bom/models/__init__.py b/sale_order_add_bom/models/__init__.py new file mode 100644 index 0000000..a352efe --- /dev/null +++ b/sale_order_add_bom/models/__init__.py @@ -0,0 +1 @@ +from . import mrp_bom diff --git a/sale_order_add_bom/mrp_bom.py b/sale_order_add_bom/models/mrp_bom.py similarity index 75% rename from sale_order_add_bom/mrp_bom.py rename to sale_order_add_bom/models/mrp_bom.py index 60d27cc..91667e5 100644 --- a/sale_order_add_bom/mrp_bom.py +++ b/sale_order_add_bom/models/mrp_bom.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# Copyright 2016-2019 Akretion France +# Copyright 2016-2022 Akretion France (http://www.akretion.com/) # @author: Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). @@ -8,6 +7,5 @@ from odoo import models, fields class MrpBom(models.Model): _inherit = 'mrp.bom' -# _rec_name = 'product_id' sale_ok = fields.Boolean(related='product_tmpl_id.sale_ok', store=True) diff --git a/sale_order_add_bom/security/ir.model.access.csv b/sale_order_add_bom/security/ir.model.access.csv new file mode 100644 index 0000000..02d6493 --- /dev/null +++ b/sale_order_add_bom/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_sale_add_phantom_bom_sale,Full access on sale.add.phantom.bom wizard to sale user,model_sale_add_phantom_bom,sales_team.group_sale_salesman,1,1,1,1 +access_sale_add_phantom_bom_stock,Full access on sale.add.phantom.bom wizard to stock user,model_sale_add_phantom_bom,stock.group_stock_user,1,1,1,1 diff --git a/sale_order_add_bom/views/sale_order.xml b/sale_order_add_bom/views/sale_order.xml index 18c8861..60eab9e 100644 --- a/sale_order_add_bom/views/sale_order.xml +++ b/sale_order_add_bom/views/sale_order.xml @@ -1,12 +1,11 @@ - add.bom.sale.order.form @@ -20,5 +19,4 @@ - diff --git a/sale_order_add_bom/views/stock_picking.xml b/sale_order_add_bom/views/stock_picking.xml index a316306..07d4e61 100644 --- a/sale_order_add_bom/views/stock_picking.xml +++ b/sale_order_add_bom/views/stock_picking.xml @@ -1,6 +1,6 @@ diff --git a/sale_order_add_bom/wizard/__init__.py b/sale_order_add_bom/wizard/__init__.py index f473f0c..78b87a3 100644 --- a/sale_order_add_bom/wizard/__init__.py +++ b/sale_order_add_bom/wizard/__init__.py @@ -1,3 +1 @@ -# -*- coding: utf-8 -*- - from . import sale_add_phantom_bom diff --git a/sale_order_add_bom/wizard/sale_add_phantom_bom.py b/sale_order_add_bom/wizard/sale_add_phantom_bom.py index 58937b5..c4f4186 100644 --- a/sale_order_add_bom/wizard/sale_add_phantom_bom.py +++ b/sale_order_add_bom/wizard/sale_add_phantom_bom.py @@ -1,10 +1,10 @@ -# -*- coding: utf-8 -*- -# © 2016 Akretion (Alexis de Lattre ) +# Copyright 2016-2022 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import models, fields, api, _ -from openerp.exceptions import UserError -from openerp.tools import float_is_zero +from odoo import models, fields, api, _ +from odoo.exceptions import UserError +from odoo.tools import float_is_zero class SaleAddPhantomBom(models.TransientModel): @@ -13,11 +13,15 @@ class SaleAddPhantomBom(models.TransientModel): @api.model def default_get(self, fields_list): - res = super(SaleAddPhantomBom, self).default_get(fields_list) + res = super().default_get(fields_list) if self._context.get('active_model') == 'sale.order': res['sale_id'] = self._context['active_id'] + sale = self.env['sale.order'].browse(res['sale_id']) + res['company_id'] = sale.company_id.id elif self._context.get('active_model') == 'stock.picking': res['picking_id'] = self._context['active_id'] + picking = self.env['stock.picking'].browse(res['picking_id']) + res['company_id'] = picking.company_id.id else: raise UserError(_( "The wizard can only be started from a sale order or a picking.")) @@ -25,7 +29,8 @@ class SaleAddPhantomBom(models.TransientModel): bom_id = fields.Many2one( 'mrp.bom', 'Kit', required=True, - domain=[('type', '=', 'phantom'), ('sale_ok', '=', True)]) + domain="['|', ('company_id', '=', False), ('company_id', '=', company_id), ('type', '=', 'phantom'), ('sale_ok', '=', True)]") + company_id = fields.Many2one('res.company', string='Company', required=True) qty = fields.Integer( string='Number of Kits to Add', default=1, required=True) sale_id = fields.Many2one( @@ -63,7 +68,6 @@ class SaleAddPhantomBom(models.TransientModel): } return vals - @api.multi def add(self): self.ensure_one() assert self.sale_id or self.picking_id, 'No related sale_id or picking_id' @@ -90,4 +94,3 @@ class SaleAddPhantomBom(models.TransientModel): elif self.picking_id: vals = self._prepare_stock_move(line, self.picking_id, self.qty) smo.create(vals) - return True diff --git a/sale_order_add_bom/wizard/sale_add_phantom_bom_view.xml b/sale_order_add_bom/wizard/sale_add_phantom_bom_view.xml index 82e1af3..dd192b3 100644 --- a/sale_order_add_bom/wizard/sale_add_phantom_bom_view.xml +++ b/sale_order_add_bom/wizard/sale_add_phantom_bom_view.xml @@ -1,25 +1,28 @@ - sale.add.phantom.bom.form sale.add.phantom.bom -
+ + + +
@@ -32,5 +35,4 @@ new
-