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-es08:22
-!- daniel___(~daniel@90.68.31.84) has joined #tryton-es08:36
daniel___Buenas08:36
pokolidaniel___: buenos dias :)08:36
daniel___Pokoli: Buenos dias!08:37
daniel___me podeis hechar una mano con los triggers?08:37
daniel___he creado este gist con la info que he recopilado del problema: https://gist.github.com/danypr92/0eb20e6dddde34b1cc5eb5311aef12e708:38
daniel___estoy en la versión 3.8 de Tryton y he intentado crear unos triggers "on write"08:38
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)08:41
pokolidaniel___: yo lo veo bien definidio el trigger08:44
daniel___pokoli: si, lo tenemos que ir planteando la verdad...08:45
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 trigger08:45
pokolidaniel___: puedes encontrar ejemplos en: http://hg.tryton.org/trytond/file/3.8.17/trytond/tests/test_trigger.py#l17108:46
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...08:46
daniel___pokoli: el bool() de Python no evalua condiciones, solo devuelve False si se le pasa un Flase o None08:47
pokolidaniel___: el bool lo evalua08:47
daniel___https://docs.python.org/2/library/functions.html#bool08:48
pokoliACTION checking08:49
pokolidaniel___: el decoder.decode es el que lo evalua08:53
pokolidaniel___: https://pastebin.com/LfNq3uSS08:56
daniel___pokoli: ok! gracias!09:14
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')`09:16
daniel___voy a ver si cambiando la sintaxis me funciona09:16
pokolidaniel___: en pyson puro seria Equal(Eval('self', {}).get('state'), 'requested')09:28
pokolidaniel___: entonces el problema es que utilizas un domain y el domain te devuelve una tupla, que al evaluarse a true siempre es verdadero09:29
pokolidaniel___: eso explicaria porqué no te funciona09:29
-!- daniel___(~daniel@90.68.31.84) has joined #tryton-es11:49
daniel___pokoli: muchas gracias, ya hemos conseguido que funcione11:50
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 condiciones11:51
-!- nstefani(~nstefani@190.210.221.137) has joined #tryton-es12:33
-!- nstefani(~nstefani@190.210.221.137) has joined #tryton-es12:34
-!- csotelo(~csotelo@179.43.97.56) has joined #tryton-es13:39
-!- mariomop(~quassel@181.92.171.232) has joined #tryton-es19:28
-!- csotelo(~csotelo@179.43.97.56) has joined #tryton-es21:31

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