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

Por ha llegado ¡ Ya tenemos disponible para descarga ODoo 8 Stable Como siempre.. podeis...
Una opción cada vez mas demandada es el poder enviar mensajes mediante whatsapp a clientes....
Después de varios años de un rápido crecimiento, OpenERP, el software empresarial líder de...
More inNoticias  

Documentos Recientes