diff --git a/mrp_progress_button/__manifest__.py b/mrp_progress_button/__manifest__.py index 3f47b0fe3..20c438837 100644 --- a/mrp_progress_button/__manifest__.py +++ b/mrp_progress_button/__manifest__.py @@ -10,11 +10,7 @@ "category": "Manufacturing", "version": "12.0.1.0.0", "license": "AGPL-3", - "depends": [ - "mrp" - ], - "data": [ - "views/production.xml" - ], + "depends": ["mrp"], + "data": ["views/production.xml"], "installable": True, } diff --git a/mrp_progress_button/models/mrp_production.py b/mrp_progress_button/models/mrp_production.py index 320c464f6..467824288 100644 --- a/mrp_progress_button/models/mrp_production.py +++ b/mrp_progress_button/models/mrp_production.py @@ -3,16 +3,19 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from datetime import datetime + from odoo import api, models class MrpProduction(models.Model): - _inherit = 'mrp.production' + _inherit = "mrp.production" @api.multi def action_progress(self): - self.write({ - 'state': 'progress', - 'date_start': datetime.now(), - }) + self.write( + { + "state": "progress", + "date_start": datetime.now(), + } + ) return True diff --git a/mrp_progress_button/readme/DESCRIPTION.rst b/mrp_progress_button/readme/DESCRIPTION.rst index df53d4ebe..85cb853a5 100644 --- a/mrp_progress_button/readme/DESCRIPTION.rst +++ b/mrp_progress_button/readme/DESCRIPTION.rst @@ -1,4 +1,4 @@ -Simple module that add a button on MO to mark the Manufacturing Order to +Simple module that add a button on MO to mark the Manufacturing Order to *In Progress* state. This module is usefull only when you do not use routing and operations. Indeed, the *In Progress* state is automatically put when the first operation is started. diff --git a/mrp_progress_button/tests/test_progress_button.py b/mrp_progress_button/tests/test_progress_button.py index 4bddd28ae..03a9bc0c3 100644 --- a/mrp_progress_button/tests/test_progress_button.py +++ b/mrp_progress_button/tests/test_progress_button.py @@ -6,63 +6,78 @@ from odoo.tests.common import TransactionCase class TestProgressButton(TransactionCase): - def setUp(self, *args, **kwargs): super(TestProgressButton, self).setUp(*args, **kwargs) - self.production_model = self.env['mrp.production'] - self.bom_model = self.env['mrp.bom'] - self.stock_location_stock = self.env.ref('stock.stock_location_stock') - self.manufacture_route = self.env.ref( - 'mrp.route_warehouse0_manufacture') - self.uom_unit = self.env.ref('uom.product_uom_unit') + self.production_model = self.env["mrp.production"] + self.bom_model = self.env["mrp.bom"] + self.stock_location_stock = self.env.ref("stock.stock_location_stock") + self.manufacture_route = self.env.ref("mrp.route_warehouse0_manufacture") + self.uom_unit = self.env.ref("uom.product_uom_unit") - self.product_manuf = self.env['product.product'].create({ - 'name': 'Manuf', - 'type': 'product', - 'uom_id': self.uom_unit.id, - 'route_ids': [(4, self.manufacture_route.id)] - }) - self.product_raw_material = self.env['product.product'].create({ - 'name': 'Raw Material', - 'type': 'product', - 'uom_id': self.uom_unit.id, - }) + self.product_manuf = self.env["product.product"].create( + { + "name": "Manuf", + "type": "product", + "uom_id": self.uom_unit.id, + "route_ids": [(4, self.manufacture_route.id)], + } + ) + self.product_raw_material = self.env["product.product"].create( + { + "name": "Raw Material", + "type": "product", + "uom_id": self.uom_unit.id, + } + ) - self._update_product_qty(self.product_raw_material, - self.stock_location_stock, 1) + self._update_product_qty( + self.product_raw_material, self.stock_location_stock, 1 + ) - self.bom = self.env['mrp.bom'].create({ - 'product_id': self.product_manuf.id, - 'product_tmpl_id': self.product_manuf.product_tmpl_id.id, - 'bom_line_ids': ([ - (0, 0, { - 'product_id': self.product_raw_material.id, - 'product_qty': 1, - 'product_uom_id': self.uom_unit.id - }), - ]) - }) + self.bom = self.env["mrp.bom"].create( + { + "product_id": self.product_manuf.id, + "product_tmpl_id": self.product_manuf.product_tmpl_id.id, + "bom_line_ids": ( + [ + ( + 0, + 0, + { + "product_id": self.product_raw_material.id, + "product_qty": 1, + "product_uom_id": self.uom_unit.id, + }, + ), + ] + ), + } + ) def _update_product_qty(self, product, location, quantity): """Update Product quantity.""" - product_qty = self.env['stock.change.product.qty'].create({ - 'location_id': location.id, - 'product_id': product.id, - 'new_quantity': quantity, - }) + product_qty = self.env["stock.change.product.qty"].create( + { + "location_id": location.id, + "product_id": product.id, + "new_quantity": quantity, + } + ) product_qty.change_product_qty() return product_qty def test_manufacture_with_forecast_stock(self): """ - Test Manufacture mto with stock based on forecast quantity - and no link between sub assemblies MO's and Main MO raw material + Test Manufacture mto with stock based on forecast quantity + and no link between sub assemblies MO's and Main MO raw material """ - production = self.production_model.create({ - 'product_id': self.product_manuf.id, - 'product_qty': 1, - 'product_uom_id': self.uom_unit.id, - 'bom_id': self.bom.id - }) + production = self.production_model.create( + { + "product_id": self.product_manuf.id, + "product_qty": 1, + "product_uom_id": self.uom_unit.id, + "bom_id": self.bom.id, + } + ) production.action_progress() - self.assertEqual(production.state, 'progress') + self.assertEqual(production.state, "progress") diff --git a/mrp_progress_button/views/production.xml b/mrp_progress_button/views/production.xml index a42cc38e1..fd23420dd 100644 --- a/mrp_progress_button/views/production.xml +++ b/mrp_progress_button/views/production.xml @@ -1,13 +1,18 @@ - + mrp.production - + diff --git a/setup/mrp_progress_button/odoo/addons/mrp_progress_button b/setup/mrp_progress_button/odoo/addons/mrp_progress_button new file mode 120000 index 000000000..1540e0e2a --- /dev/null +++ b/setup/mrp_progress_button/odoo/addons/mrp_progress_button @@ -0,0 +1 @@ +../../../../mrp_progress_button \ No newline at end of file diff --git a/setup/mrp_progress_button/setup.py b/setup/mrp_progress_button/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/mrp_progress_button/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)