Allow only deleting cancelled workflowed models

review317001
This commit is contained in:
Cédric Krier
2012-04-03 12:17:16 +02:00
parent a8593f91bf
commit 3157aad56c
+12
View File
@@ -136,6 +136,8 @@ class Purchase(Workflow, ModelSQL, ModelView):
'quotation.',
'missing_account_payable': 'It misses ' \
'an "Account Payable" on the party "%s"!',
'delete_cancel': 'Purchase "%s" must be cancelled before '\
'deletion!',
})
self._transitions |= set((
('draft', 'quotation'),
@@ -739,6 +741,16 @@ class Purchase(Workflow, ModelSQL, ModelView):
return (purchase.invoice_state == 'paid'
and purchase.shipment_state == 'received')
def delete(self, ids):
if isinstance(ids, (int, long)):
ids = [ids]
# Cancel before delete
self.cancel(ids)
for purchase in self.browse(ids):
if purchase.state != 'cancel':
self.raise_user_error('delete_cancel', purchase.rec_name)
return super(Purchase, self).delete(ids)
@ModelView.button
@Workflow.transition('cancel')
def cancel(self, ids):