Index: shipment.py =================================================================== --- ./trytond/trytond/modules/stock/shipment.py +++ ./trytond/trytond/modules/stock/shipment.py @@ -60,9 +60,9 @@ supplier = fields.Many2One('party.party', 'Supplier', states={ 'readonly': And(Or(Not(Equal(Eval('state'), 'draft')), - Bool(Eval('incoming_moves'))), Bool(Eval('supplier'))), + Bool(Eval('incoming_moves', [0]))), Bool(Eval('supplier'))), }, on_change=['supplier'], required=True, - depends=['state', 'incoming_moves', 'supplier']) + depends=['state', 'supplier']) supplier_location = fields.Function(fields.Many2One('stock.location', 'Supplier Location', on_change_with=['supplier']), 'on_change_with_supplier_location') @@ -75,8 +75,8 @@ required=True, domain=[('type', '=', 'warehouse')], states={ 'readonly': Or(In(Eval('state'), ['cancel', 'done']), - Bool(Eval('incoming_moves'))), - }, depends=['state', 'incoming_moves']) + Bool(Eval('incoming_moves', [0]))), + }, depends=['state']) warehouse_input = fields.Function(fields.Many2One('stock.location', 'Warehouse Input', on_change_with=['warehouse']), 'on_change_with_warehouse_input') @@ -496,15 +496,15 @@ from_location = fields.Many2One('stock.location', "From Location", required=True, states={ 'readonly': Or(Not(Equal(Eval('state'), 'draft')), - Bool(Eval('moves'))), + Bool(Eval('moves', [0]))), }, domain=[('type', '=', 'storage')], - depends=['state', 'moves']) + depends=['state']) to_location = fields.Many2One('stock.location', "To Location", required=True, states={ 'readonly': Or(Not(Equal(Eval('state'), 'draft')), - Bool(Eval('moves'))), + Bool(Eval('moves', [0]))), }, domain=[('type', '=', 'supplier')], - depends=['state', 'moves']) + depends=['state']) moves = fields.One2Many('stock.move', 'shipment', 'Moves', states={ 'readonly': And(Or(Not(Equal(Eval('state'), 'draft')), @@ -797,9 +797,9 @@ customer = fields.Many2One('party.party', 'Customer', required=True, states={ 'readonly': Or(Not(Equal(Eval('state'), 'draft')), - Bool(Eval('outgoing_moves'))), + Bool(Eval('outgoing_moves', [0]))), }, on_change=['customer'], - depends=['state', 'outgoing_moves']) + depends=['state']) customer_location = fields.Function(fields.Many2One('stock.location', 'Customer Location', on_change_with=['customer']), 'on_change_with_customer_location') @@ -816,9 +816,9 @@ warehouse = fields.Many2One('stock.location', "Warehouse", required=True, states={ 'readonly': Or(Not(Equal(Eval('state'), 'draft')), - Bool(Eval('outgoing_moves'))), + Bool(Eval('outgoing_moves', [0]))), }, domain=[('type', '=', 'warehouse')], - depends=['state', 'outgoing_moves']) + depends=['state']) warehouse_storage = fields.Function(fields.Many2One('stock.location', 'Warehouse Storage', on_change_with=['warehouse']), 'on_change_with_warehouse_storage') @@ -1329,9 +1329,9 @@ customer = fields.Many2One('party.party', 'Customer', required=True, states={ 'readonly': Or(Not(Equal(Eval('state'), 'draft')), - Bool(Eval('incoming_moves'))), + Bool(Eval('incoming_moves', [0]))), }, on_change=['customer'], - depends=['state', 'incoming_moves']) + depends=['state']) customer_location = fields.Function(fields.Many2One('stock.location', 'Customer Location', on_change_with=['customer']), 'on_change_with_customer_location') @@ -1348,9 +1348,9 @@ warehouse = fields.Many2One('stock.location', "Warehouse", required=True, states={ 'readonly': Or(Not(Equal(Eval('state'), 'draft')), - Bool(Eval('incoming_moves'))), + Bool(Eval('incoming_moves', [0]))), }, domain=[('type', '=', 'warehouse')], - depends=['state', 'incoming_moves']) + depends=['state']) warehouse_storage = fields.Function(fields.Many2One('stock.location', 'Warehouse Storage', on_change_with=['warehouse']), 'on_change_with_warehouse_storage') @@ -1774,18 +1774,18 @@ from_location = fields.Many2One('stock.location', "From Location", required=True, states={ 'readonly': Or(Not(Equal(Eval('state'), 'draft')), - Bool(Eval('moves'))), + Bool(Eval('moves', [0]))), }, domain=[ ('type', 'in', ['storage', 'lost_found']), - ], depends=['state', 'moves']) + ], depends=['state']) to_location = fields.Many2One('stock.location', "To Location", required=True, states={ 'readonly': Or(Not(Equal(Eval('state'), 'draft')), - Bool(Eval('moves'))), + Bool(Eval('moves', [0]))), }, domain=[ ('type', 'in', ['storage', 'lost_found']), - ], depends=['state', 'moves']) + ], depends=['state']) moves = fields.One2Many('stock.move', 'shipment', 'Moves', states={ 'readonly': ((Eval('state') != 'draft')