Skip to content

Instantly share code, notes, and snippets.

@danypr92
Last active May 10, 2018 09:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danypr92/8ab7d9174dcc657496e8765c766339cb to your computer and use it in GitHub Desktop.
Save danypr92/8ab7d9174dcc657496e8765c766339cb to your computer and use it in GitHub Desktop.
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