Saltarnos algunas Reglas de Lectura de Registros en Odoo
Este pequeño fragmento de Código es un ejemplo sobre como poder saltarse las reglas de lectura de registros para algunas clases, les contare un poco que me orillo a esta solución un poco agresiva, esto lo he tenido que hacer para un Cliente que tiene desarrollos de Terceros, por alguna circunstancia dentro de algún modulo existe un fragmento de Código que limita al usuario a solo visualizar sus Registros Creados sin utilizar las Reglas de Odoo, buscando dentro de todos los módulos no encontré ese fragmento y me puse a pensar una solución a este detalle y se me ocurrió usar la librería SUPERUSER_ID de Odoo y pasarla al método principal de búsqueda, esto ayuda a poder usar el Root de Odoo y visualizar la información sin problema, el ejemplo siguiente es para la tabla de Albaranes o Movimientos de Almacén:
class stock_picking(osv.osv): _name = 'stock.picking' _inherit ='stock.picking' _columns = { } _defaults = { } ########## METODOS PARA VOLARNOS LAS REGLAS DE LECTURA DE REGISTROS ############# def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): from openerp import SUPERUSER_ID res = super(stock_picking, self).fields_view_get(cr, SUPERUSER_ID, view_id, view_type, context=context, toolbar=toolbar, submenu=submenu) return res def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): from openerp import SUPERUSER_ID res = super(stock_picking, self).search(cr, SUPERUSER_ID, args, offset, limit, order, context, count) return res
Podríamos mejorar un poco el codigo añadiendo algunas normas de lectura, etc...
Notas: El ejemplo esta hecho para OpenERP 7 y Odoo 8, para Odoo 9 solo sustituimos la herencia y los métodos por la API.
Espero les sea de utilidad.