Dominios complejos en una vista openerp, Complex domain in views - openerp

Un ejemplo de como aplicar un dominio complejo sobre un campo

    def _get_partner_domain(self, cr, uid, ids, field_name, arg, context=None):
        #esta funcion devolvera una cadena de tecto de tipo “[1,34,23,45]” con los ids dela tabla res.partner que queremos mostrar.
        res = {}
        for orden in self.browse(cr, uid, ids, context = context):
            partners=[]
            #Realizamos las consultas necesarias para obtener los Ids que buscamos y los pasamos a la lista “partners”
            #depues debemos pasar la lista a una cadena de texto, existen varias formas.. esta es una de ellas
:
            string = ''
            for i in partners:
                string = string + str(i) + ','
            res[orden.id] =  '['+string+']'
        return res
 
   
     _columns = {
        'partner_domain': fields.function(_get_partner_domain, method=True, type='char', string='Domain'),
        'partner_id': fields.many2one('res.partner', 'Partner', required = False, domain = "[('id','in',eval(partner_domain) )]"),

La columna partner_domain es simplemente un campo de tipo char que ontiene una cadena con los ids que queremos mostrar.
En la columna partner_id añadimos como valor de  dominio el campo partner_domain , Muy importante es usar la expresion eval(), para que convierta la cadena de texto en una lista.

Últimas Noticias

Actualmente aumentar la  productividad y la competitividad empresarial es cada vez una tarea...
https://listacasas.com Uno de los portales inmobiliarios más conocidos de Guatemala...
Nuevo proyecto realizado por Infoacp, una web en prestashop : https://wiwi-pc.es En wiwi-pc...
More inNoticias  

Documentos Recientes

Linkedin Twitter Facebook Youtube
Copyright (c) InfoAcp 2013. All rights reserved. Mantenimiento Informático
Infoacp Empresa de Informática, diseño gráfico, desarrollo de aplicaciones de gestión, Odoo, Contratos de mantenimiento informatico
Diseño y soluciones TIC Infoacp S.L.
Murcia Murcia 30007 España
Localización: 37.9956589, -1.1284899
868 70 76 94
informática, diseño gráfico, reparación de ordenadores, reparación de portatiles, reparación de móviles, programas de gestión para empresas, odoo, desarrollo odoo, programacion odoo, contratos de mantenimiento informatico