diff --git a/purchase.py b/purchase.py index b986f0bcbc..4f64bf0fd3 100644 --- a/purchase.py +++ b/purchase.py @@ -431,7 +431,8 @@ class PurchaseRequisition(Workflow, ModelSQL, ModelView): cls.do(done) def is_done(self): - return all(r.purchase and r.purchase.state in {'cancel', 'confirmed'} + return all( + r.purchase and r.purchase.state in {'cancelled', 'confirmed'} for l in self.lines for r in l.purchase_requests) @@ -702,7 +703,7 @@ class Purchase(metaclass=PoolMeta): @classmethod @ModelView.button - @Workflow.transition('cancel') + @Workflow.transition('cancelled') def cancel(cls, purchases): super(Purchase, cls).cancel(purchases) cls._process_requisition(purchases) diff --git a/tests/scenario_purchase_requisition.rst b/tests/scenario_purchase_requisition.rst index 8cffffb07c..84b604a92c 100644 --- a/tests/scenario_purchase_requisition.rst +++ b/tests/scenario_purchase_requisition.rst @@ -227,7 +227,7 @@ Cancel the purchase order:: >>> purchase, = Purchase.find([('state', '=', 'draft')]) >>> purchase.click('cancel') >>> purchase.state - 'cancel' + 'cancelled' >>> pr.reload() >>> pr.state 'exception'