diff --git a/mrp_progress_button/models/mrp_production.py b/mrp_progress_button/models/mrp_production.py index d973ab354..18751355a 100644 --- a/mrp_progress_button/models/mrp_production.py +++ b/mrp_progress_button/models/mrp_production.py @@ -4,16 +4,31 @@ from datetime import datetime -from odoo import models +from odoo import api, models class MrpProduction(models.Model): _inherit = "mrp.production" + @api.depends( + "move_raw_ids.state", + "move_raw_ids.quantity_done", + "move_finished_ids.state", + "workorder_ids.state", + "product_qty", + "qty_producing", + "date_start", + ) + def _compute_state(self): + res = super()._compute_state() + for production in self: + if production.state == "confirmed" and production.date_start: + production.state = "progress" + return res + def action_progress(self): self.write( { - "state": "progress", "date_start": datetime.now(), } ) diff --git a/mrp_progress_button/tests/test_progress_button.py b/mrp_progress_button/tests/test_progress_button.py index f2d2773d5..6a98b36f8 100644 --- a/mrp_progress_button/tests/test_progress_button.py +++ b/mrp_progress_button/tests/test_progress_button.py @@ -65,6 +65,7 @@ class TestProgressButton(TransactionCase): "bom_id": self.bom.id, } ) + production.action_confirm() production.action_progress() self.assertEqual(production.state, "progress") self.assertEqual(