Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Descripción del problema de validacion de campos en las transiciones de un workflow.

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á a True.

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 estados Confirmed o Cancelled, cuando cambiamos de True a False 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!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.