IRC logs of #tryton-es for Thursday, 2018-04-05

chat.freenode.net #tryton-es log beginning Thu Apr 5 00:02:01 CEST 2018
-!- guifipedro[m](guifiped2@gateway/shell/matrix.org/x-aygcrdyljgfiuelj) has joined #tryton-es10:04
-!- daniel___(~daniel@90.68.31.84) has joined #tryton-es10:04
daniel___Buenas10:04
pokolidaniel___: buenos dias :)10:04
daniel___Pokoli: Buenos dias!10:04
daniel___me podeis hechar una mano con los triggers?10:04
daniel___he creado este gist con la info que he recopilado del problema: https://gist.github.com/danypr92/0eb20e6dddde34b1cc5eb5311aef12e710:04
daniel___estoy en la versión 3.8 de Tryton y he intentado crear unos triggers "on write"10:04
pokolidaniel___: deberias empezar a plantearte la actualización a una nueva versión, la versión 3.8 dejara de estar soportadas cuando se libere la pròxima versión (23 de Abril)10:04
pokolidaniel___: yo lo veo bien definidio el trigger10:04
daniel___pokoli: si, lo tenemos que ir planteando la verdad...10:04
pokolidaniel___: la condicion es la correcta, cuando se haga el write del workflow sera False antes del write i true despues del write, por lo tanto se deberia ejecutar el trigger10:04
pokolidaniel___: puedes encontrar ejemplos en: http://hg.tryton.org/trytond/file/3.8.17/trytond/tests/test_trigger.py#l17110:04
daniel___pokoli: sí, pero la realidad es que no se ejecuta. Poniendo breakpoint y pasando paso a paso por ese codigo, vemos que el bool(PYSONDecoder(env).decode(trigger.condition))bool(PYSONDecoder(env).decode(trigger.condition)) siempre devuelve True, ya que el PYSONDecoder solo transforma la condición a algo legible, no la evalua...10:04
daniel___pokoli: el bool() de Python no evalua condiciones, solo devuelve False si se le pasa un Flase o None10:04
pokolidaniel___: el bool lo evalua10:04
daniel___https://docs.python.org/2/library/functions.html#bool10:04
pokoliACTION checking10:04
pokolidaniel___: el decoder.decode es el que lo evalua10:04
pokolidaniel___: https://pastebin.com/LfNq3uSS10:04
daniel___pokoli: ok! gracias!11:04
daniel___pokoli: veo que la sintaxis de la condición es diferente, tu hacer una comparacion normal: `Eval('self', {}).get('state') == 'blank'` y yo uso la sintaxis del domain: `(Eval('self', {}).get('state'), '==', 'requested')`11:04
daniel___voy a ver si cambiando la sintaxis me funciona11:04
pokolidaniel___: en pyson puro seria Equal(Eval('self', {}).get('state'), 'requested')11:04
pokolidaniel___: entonces el problema es que utilizas un domain y el domain te devuelve una tupla, que al evaluarse a true siempre es verdadero11:04
pokolidaniel___: eso explicaria porqué no te funciona11:04
-!- daniel___(~daniel@90.68.31.84) has joined #tryton-es13:04
daniel___pokoli: muchas gracias, ya hemos conseguido que funcione13:04
daniel___pokoli: ahora, para poner varias condiciones con un AND? porque he probado tanto And(X, Y) y X && Y y no consigo que me convierta las condiciones13:04
-!- nstefani(~nstefani@190.210.221.137) has joined #tryton-es14:04
-!- nstefani(~nstefani@190.210.221.137) has joined #tryton-es14:04
-!- csotelo(~csotelo@179.43.97.56) has joined #tryton-es15:04
-!- mariomop(~quassel@181.92.171.232) has joined #tryton-es21:04
-!- csotelo(~csotelo@179.43.97.56) has joined #tryton-es23:04

Generated by irclog2html.py 2.16.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!