From 8346f7df5515b298e394fefbf04fa336f5a4185a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 1 Jun 2013 00:12:50 +0200 Subject: [PATCH] Use stock move worklow instead of overriding write review902002 --- purchase.py | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/purchase.py b/purchase.py index 8223fa996b..307f3164ad 100644 --- a/purchase.py +++ b/purchase.py @@ -1772,24 +1772,22 @@ class Move(ModelSQL, ModelView): ('purchase.line',)] @classmethod - def write(cls, moves, vals): + @ModelView.button + @Workflow.transition('cancel') + def cancel(cls, moves): pool = Pool() Purchase = pool.get('purchase.purchase') PurchaseLine = pool.get('purchase.line') - super(Move, cls).write(moves, vals) - if 'state' in vals and vals['state'] in ('cancel',): - purchases = set() - purchase_lines = PurchaseLine.search([ - ('moves', 'in', [m.id for m in moves]), - ]) - if purchase_lines: - for purchase_line in purchase_lines: - purchases.add(purchase_line.purchase) - if purchases: - with Transaction().set_user(0, set_context=True): - purchases = Purchase.browse([p.id for p in purchases]) - Purchase.process(purchases) + super(Move, cls).cancel(moves) + purchase_lines = PurchaseLine.search([ + ('moves', 'in', [m.id for m in moves]), + ]) + if purchase_lines: + purchase_ids = list(set(l.purchase.id for l in purchase_lines)) + with Transaction().set_user(0, set_context=True): + purchases = Purchase.browse(purchase_ids) + Purchase.process(purchases) @classmethod def delete(cls, moves):