From 7c323c340cee57758ba8d044358c5a7e8ff28ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 7 Mar 2021 10:02:43 +0100 Subject: [PATCH] Remove cancelled move from package issue10128 review332011002 --- stock.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/stock.py b/stock.py index cd6be20f27..c5b84455d7 100644 --- a/stock.py +++ b/stock.py @@ -177,7 +177,12 @@ class Type(ModelSQL, ModelView): class Move(metaclass=PoolMeta): __name__ = 'stock.move' - package = fields.Many2One('stock.package', 'Package', select=True) + package = fields.Many2One( + 'stock.package', "Package", select=True, + states={ + 'readonly': Eval('state') == 'cancelled', + }, + depends=['state']) @classmethod def copy(cls, moves, default=None): @@ -188,6 +193,13 @@ class Move(metaclass=PoolMeta): default.setdefault('package') return super().copy(moves, default=default) + @classmethod + @ModelView.button + @Workflow.transition('cancelled') + def cancel(cls, moves): + cls.write([m for m in moves if m.package], {'package': None}) + super().cancel(moves) + class PackageMixin(object): __slots__ = ()