Programacion Interactiva

Descubre una Nueva y Poderosa Herramienta.

FrameWork de Nueva Generacion

Acceso a tu Informacion desde cualquier Dispositivo con Navegador.

Enfoque en el Backend

Frontend de forma facil con Odoo y XML.

Creacion de Verticales

Creacion de nuevas Verticales Conquistando nuevos Mercados.

Tu marca aqui mismo

Llega a miles de personas.

Publicidad

Mostrando las entradas con la etiqueta seguridad. Mostrar todas las entradas
Mostrando las entradas con la etiqueta seguridad. Mostrar todas las entradas

lunes, 13 de enero de 2014

Reglas en Odoo (OpenERP) utilizando campos Many2Many y One2Many



Reglas con Campos Many2Many y One2Many


    Durante la creación de Reglas para Grupos en OpenERP en ocasiones tenemos que utilizar  campos many2many ó one2many para comparar que un valor se encuentre dentro de una lista de valores.

    Por ejemplo cuando trabajamos en un entorno MulticompaƱia en OpenERP en ocasiones tenemos errores durante el manejo de Modelos que tengan Acceso a campos que utilicen la campos con referencia a compaƱƭa, por ejemplo si queremos la comprobación de que un elemento se encuentra dentro de una lista ó que un campo compaƱia se encuentre dentro del campo company_ids que se encuentra en Usuarios y que contiene una lista de compaƱias a las cuales el usuario puede tener acceso, tendrĆ­amos que agregar en la creación de regla el dominio siguiente:

[('company_id','in',[x.id for x in user.company_ids])]

 - company_id: Es el campo que encuentra en el modelo OpenERP al cual quiero ligar con mi regla.

 - in: Es el la palabra reservada para comparar que un elemento se encuentra dentro de una lista.

 - [x.id for x in user.company_ids]: En esta linea  utilizamos un poco de código Python para crear una lista con los valores para la comparación de mi dominio, x.id es el valor obtenido de un ciclo for utilizando una variable x para la iterar dentro de el campo user.company_ids que contiene la relación many2many con el modelo de compaƱia. Al Final nos quedarĆ­a en ejecución algo como lo siguiente [('10','in',[1,5,15,10,25,35,2])], esto da como resultado True o False depensiendo si el valor 10 se encuentra dentro de los valores 1, 5, 15, 10, 25, 35, 2. A este proceso se le conoce en Python como Listas de Comprensión