Extend readonly condition on buttons of state changes

This commit refs #28612
This commit is contained in:
Sergio Morillo 2023-11-14 09:43:50 +01:00
parent 65811cea5e
commit 5ca8b18705
1 changed files with 11 additions and 1 deletions

View File

@ -3,7 +3,7 @@
from functools import wraps
from trytond.pool import PoolMeta, Pool
from trytond.model import fields, Workflow
from trytond.pyson import Bool
from trytond.pyson import Bool, Eval, Or
from trytond.exceptions import UserError
from trytond.i18n import gettext
from trytond.transaction import Transaction
@ -53,6 +53,16 @@ class Move(metaclass=PoolMeta):
'readonly': Bool(True)
})
@classmethod
def __setup__(cls):
super().__setup__()
for button in ['draft', 'cancel', 'assign', 'do']:
if cls._buttons[button].get('readonly'):
cls._buttons[button]['readonly'] |= Bool(Eval('unit_load'))
else:
cls._buttons[button]['readonly'] = Bool(Eval('unit_load'))
cls._buttons[button]['depends'].append('unit_load')
@classmethod
def validate(cls, records):
super(Move, cls).validate(records)