El jueves, 21 de mayo de 2015, 15:36:07 (UTC+1), Jesús Martín Jiménez escribió: > > > > El 21 de mayo de 2015, 16:16, Antonio Roncero <[email protected] > <javascript:>> escribió: > >> >> >> El jueves, 21 de mayo de 2015, 14:19:50 (UTC+1), Jesús Martín Jiménez >> escribió: >>> >>> Hola Antonio, >>> >>> El 21 de mayo de 2015, 15:03, Antonio Roncero <[email protected]> >>> escribió: >>> >>>> Hola, >>>> >>>> estoy probando hacer una vista editable sobre un modelo y en principio >>>> funciona bien. Pero me gustaria saber como puedo hacer para cuando pulso >>>> enter y se crea una nueva linea, el foco se ponga sobre el primer campo >>>> editable de la linea. >>>> >>>> Y una segunda pregunta, como puedo hacer que el atributo readonly sea 1 >>>> o 0 segun un campo del modelo, es decir, si tengo un modelo con un campo A >>>> y otro B (de tipo boolean) que el campo A en la vista arbol editable sea >>>> readonly segun si B es True o False. >>>> >>> >>> Utiliza el parámetro states [1]. Tienes ejemplos en el código de muchos >>> módulos. >>> >>> [1] http://doc.tryton.org/3.4/trytond/doc/ref/models/fields.html#states >>> >> >> Hola Jesús, he probado esto >> >> <field name="A" states="{'readonly': Not(Bool(Eval('B')))}" /> >> >> pero no me funciona, seria algo asi? >> > > Tienes que ponerlo en la definición del campo (en el código python). >
Ok, yo lo estaba mirando por aqui [1], pero he visto que no existe ese atriburo en los tree, solo en los forms. En realidad no quiero que el campo sea solo lectura, solo quiero que en una vista particular no se pueda modifcar porque lo calculo a partir de otros elementos de esa misma vista. [1] http://doc.tryton.org/3.2/trytond/doc/topics/views/index.html#common-attributes-states > > >> >> >>> >>> >>>> >>>> Gracias de antemano. >>>> >>> >>> >>> >>> -- >>> >>> Jesús Martín >>> >>> Zikzakmedia SL >>> C/ de Sant Jaume, 9, baixos, 2ª >>> 08720 Vilafranca del Penedès >>> ☏ 93 890 21 08 >>> >> > > > -- > > Jesús Martín > > Zikzakmedia SL > C/ de Sant Jaume, 9, baixos, 2ª > 08720 Vilafranca del Penedès > ☏ 93 890 21 08 >
