Trabajamos con la versión 3.8 de Tryton (sabemos que ya no tiene soporte, pero no podemos hacer la migracion a una versión más reciente en estos momentos.)
Tenemos el modelo Contract
con los siguientes atributos:
class Contract:
__metaclass__ = PoolMeta
__name__ = 'contract'
equipment_received = fields.Boolean(
'Equipment Received', states={
'required': Eval('state').in_( ## He probado con el In de Pyson también
['confirmed', 'cancelled']
)
}
)
Nos gustaría que cuando se realice un cambio de estado en el contrato:
- previamente se validara si el campo
equipment_received
está aTrue
.
El resultado con la implementación propuesta es:
- Cambio de estado Confirmed/Cancelled:
Cuando realizamos el cambio de estado de draft
a confirmed
/cancelled
no se valida que el campo este a True
.
Se realiza la actualización del estado sin más.
- Al cambiar el campo
equipment_received
en los estadosConfirmed
oCancelled
, cuando cambiamos deTrue
aFalse
e intentamos guardar nos salta el siguiente mensaje:El camp "Equipment Received" de "Contracte" és obligatori.
Como se ve este no es el compartimiento deseado.
Si alguien puede aportar algo de luz, muchas gracias!!