diff --git a/purchase_request/models/purchase_request.py b/purchase_request/models/purchase_request.py index f51afbe3d1e..6055ea3483e 100644 --- a/purchase_request/models/purchase_request.py +++ b/purchase_request/models/purchase_request.py @@ -6,6 +6,7 @@ _STATES = [ ("draft", "Draft"), + ("to_review", "Review"), ("to_approve", "To be approved"), ("approved", "Approved"), ("in_progress", "In progress"), @@ -229,7 +230,7 @@ def action_view_purchase_request_line(self): @api.depends("state", "line_ids.product_qty", "line_ids.cancelled") def _compute_to_approve_allowed(self): for rec in self: - rec.to_approve_allowed = rec.state == "draft" and any( + rec.to_approve_allowed = rec.state in ["draft", "to_review"] and any( not line.cancelled and line.product_qty for line in rec.line_ids ) @@ -279,6 +280,9 @@ def unlink(self): def button_draft(self): self.mapped("line_ids").do_uncancel() return self.write({"state": "draft"}) + + def button_to_review(self): + self.write({"state": "to_review"}) def button_to_approve(self): self.to_approve_allowed_check() diff --git a/purchase_request/views/purchase_request_line_view.xml b/purchase_request/views/purchase_request_line_view.xml index f55d806cc20..ba38d86c80b 100644 --- a/purchase_request/views/purchase_request_line_view.xml +++ b/purchase_request/views/purchase_request_line_view.xml @@ -10,14 +10,14 @@ name="Purchase Request Lines" create="false" decoration-muted="cancelled == True" - decoration-info="request_state in ('draft', 'to_approve')" + decoration-info="request_state in ('draft', 'to_review', 'to_approve')" > @@ -30,7 +30,7 @@ name="purchase_state" widget="badge" decoration-success="purchase_state == 'done'" - decoration-muted="purchase_state == 'draft'" + decoration-muted="purchase_state in ('draft', 'to_review')" decoration-info="purchase_state in ('sent', 'purchase')" decoration-warning="purchase_state == 'to_approve'" decoration-danger="purchase_state == 'cancelled'" @@ -70,7 +70,7 @@ @@ -253,6 +253,12 @@ domain="[('request_state','=','draft')]" help="Request is to be approved" /> +