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