Bloqueando la creación de datos maestros desde los formularios de transacciones

14 de junio de 2023 por
Gustavo Orrillo
| Sin comentarios aún
 

Odoo es un sistema muy abierto en todo sentido. Al ser un sistema que a lo largo de las versiones tiende a simplificar sus operaciones; con el fin de agilizar su uso permite algunas acciones que pueden tener consecuencias indeseadas, como por ejemplo permite a los usuarios crear productos en los pedidos de venta (lo cual tiene como consecuencia maestros de productos de miles de registros).

Es simple comprobar esto. Solo cree un pedido de ventas (o en su defecto una orden de compras o una factura), tipee 123 en el campo de productos y verá que aparece una opción de menú que le pregunta si desea crear el registro


En un principio parece algo inofensivo, pero a la larga tiene consecuencias indeseadas. Datos maestros con miles de registros, productos o clientes duplicados... solo para mencionar algunos.

Como hacemos para evitar esto? Se deben agregar el atributo options con las opciones no_create al campo many2one. Por ejemplo

<field name="partner_id" 
​options="{'no_create': True, 'no_quick_create': True, 'no_create_edit':True}" />

Lo cual lo podemos hacer en el modo desarrollador (es una solución quick and dirty, pero no es el fin del mundo y es válida en muchas instalaciones). Pero en un módulo vamos a tener que extender la vista form correspondiente y agregar el atributo al campo many2one (ya sea mediante el elemento field o mediante xpath. Por ejemplo utilizando field

<field name="partner_id" position="attributes">
​<attribute name="options">
​{'no_create': True, 'no_quick_create': True, 'no_create_edit':True}
​</attribute>
</field>

O utilizando xpath

<xpath expr="//field[@name]='partner_id'" position="attributes">
​​<attribute name="options">
​{'no_create': True, 'no_quick_create': True, 'no_create_edit':True}
​</attribute>
</xpath>


Un día de estos voy a tener que hacer un post sobre como utilizar xpath.

Igual estas son las formas para hacerlo. Bloquear en todo Odoo esta opción es un trabajo de muchas horas, ya que se tiene que aplicar este cambio a lo largo de decenas de campos presentes en muchas vistas. Y desarrollar este cambio no es algo que se hace de la noche a la mañana.

Gustavo Orrillo 14 de junio de 2023
Compartir
Archivar
Identificarse dejar un comentario