[IMP] mrp_progress_button: black, isort, prettier

This commit is contained in:
Bernat Puig Font
2021-10-18 16:07:37 +02:00
committed by AaronHForgeFlow
parent 89fb7ef419
commit 0dd628175c
7 changed files with 87 additions and 61 deletions

View File

@@ -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,
}

View File

@@ -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

View File

@@ -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.

View File

@@ -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")

View File

@@ -1,13 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="mrp_production_progress_button_form_view" model="ir.ui.view">
<field name="model">mrp.production</field>
<field name="inherit_id" ref="mrp.mrp_production_form_view"/>
<field name="inherit_id" ref="mrp.mrp_production_form_view" />
<field name="arch" type="xml">
<button name="action_assign" position="after">
<button name="action_progress" attrs="{'invisible': ['|', ('state', '!=', 'confirmed'), ('routing_id', '!=', False)]}"
type="object" string="Mark As Started" class="oe_highlight"/>
<button
name="action_progress"
attrs="{'invisible': ['|', ('state', '!=', 'confirmed'), ('routing_id', '!=', False)]}"
type="object"
string="Mark As Started"
class="oe_highlight"
/>
</button>
</field>
</record>

View File

@@ -0,0 +1 @@
../../../../mrp_progress_button

View File

@@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)