[OpenERP 6.1] Manejar campo One2Many desde evento OnChange

259 views
Skip to first unread message

Jorge Hernán

unread,
Sep 20, 2013, 5:32:22 AM9/20/13
to openerp-s...@googlegroups.com
Muy buenas a todos.

Os escribo porque estoy un poco perdido sobre cómo gestionar un campo one2many en base al valor de otro campo. Intento explicaros:

Tengo un campo many2many "X" y otro campo one2many "Y", que se visualizan en la misma vista, primero el campo X y debajo el campo Y.
La cosa es que el campo Y es 100% dependiente de lo que el usuario va metiendo en el campo X (en el many2many).
Como esto es así, se definió un evento on_change en el campo X. Hasta aquí todo bien.

Primero de todo decir que este problema ya lo tengo resuelto, pero de una forma en que la implementación no me convence para nada, y pienso que se puede hacer de una forma más limpia y eficiente.


Ahora estoy tratando de manejar el campo one2many en base a los tipos de tuplas que, en teoría, son aceptadas para este tipo de campos. Esta información la he sacado de estos dos recursos:
http://help.openerp.com/question/4081/onchange-event-of-o2m-and-m2m/
http://bazaar.launchpad.net/~openerp/openobject-server/7.0/view/head:/openerp/osv/orm.py#L4040

En base a esto, yo entiendo que si el usuario elimina un elemento del campo many2many y eso se traduce en que hay que eliminar un registro del one2many, yo entiendo que debería devolver algo similar a esto:

res = {'X':  [(2, 10)]}
return {'value':res}

Esto suponiendo que el ID a eliminar del campo one2many sea el 10.

O si por el contrario tengo que añadir algún elemento, debería devolver lo siguiente:
res = {'X':  [(0, 0, {'campo1': valor1})]}
return {'value':res}


Esto es lo que entiendo que hay que hacer, y como entiendo que funciona, pero lo aplico de esta forma que os explico, y el campo one2many no se actualiza de ningún modo.


Esta duda que os planteo es simplemente por tratar de aprender mejor cómo funciona internamente OpenERP en cuanto al manejo de listas, pero no he encontrado documentación suficiente como para entenerlo por mi cuenta, por eso os pido ayuda y consejo.

Espero haberme explicado con la suficiente claridad.
Muchas gracias anticipadas a todos.

Un saludo !
--

Jorge Hernán Esparza

GRUPO RADMAS

Calle Aguacate, 41, Edificio 4B, Planta 3, Local 8
28054 Madrid
Teléfono: 91 777 36 33
Mail –  jorge....@radmas.com
Skype – jorge.radmas

Reply all
Reply to author
Forward
0 new messages