Hola Karla

Gracias por tu respuesta,

Probé haciendo lo que indicas, pero sigue igual.

Por alguna razón no se esta remplazando _fields con la lista de campos
de la tabla sunat_tipodocid al llamar al método search.

Aquí la definición de tipodocid:

class TipoDocId(ModelSQL, ModelView):
    'Tipo de documento de identidad sunat'
    __name__ = 'sunat.tipodocid'

    code = fields.Char(u'Código Tipo Documento Identidad', size=1,
help=u'Tipo Documento Identidad - SUNAT: Tabla 02')
    name = fields.Char(u'Documento de Identidad', size=50, help=u'Nombre
del Documento')
    active = fields.Boolean(u'Activo',help=u'Estado del registro')

Aquí el __init__.py

def register():
    Pool.register(
        Party,
        Address,
        Template,
        Product,
        TipoCdp,
        TipoMdp,
        TipoExisteSUNAT,
        Bank,
        *TipoDocId,*
        AduanaId,
        OperaStock,
        CatalogoExiste,
        Company,
        ExportPLEStart,
        ExportPLEResult,
        PaymentType,
        Currency,
        Rate,
        TraerTCStart,
        TraerTCResult,
        FiscalYear,
        Sale,
        Purchase,
        *PartyIdentifier, *           
        module='liberorbis_peru_loc', type_='model')
    Pool.register(
        ExportPLE,
        TraerTC,
        module='liberorbis_peru_loc', type_='wizard')

Seguiré dándole vueltas al asunto, si se te ocurre algo mas bienvenidos
los aportes.

Gracias otra vez.

Fernando

El 04/12/17 a las 10:10, Karla Stenger escribió:
>
>
> El 1 de diciembre de 2017, 10:32, Fernando Sánchez
> <na...@liberorbis.com <mailto:na...@liberorbis.com>> escribió:
>
>     Gracias Sergi y Raimon por su pronta y clara respuesta.
>     Ya logre personalizar la selection, pero solo de forma estatica.
>     Al poblarla dinamicamente con registros de una tabla que contiene
>     los valores me lanza un error.
>     Aqui el codigo:
>
>     class
>     ​​
>     PartyIdentifier(ModelSQL, ModelView):
>         'Party Identifier'
>         __metaclass__ = PoolMeta
>         __name__ =
>     ​​
>     'party.identifier'
>        
>         @classmethod
>         def __setup__(cls):
>             super(PartyIdentifier, cls).__setup__()
>             tiposdocid = cls.get_types()
>             for tipos in tiposdocid:
>                 if tipos not in cls.type.selection:
>                     cls.type.selection.append(tipos)
>        
>         @classmethod
>         def get_types(cls):
>             #return [('0', 'Otros tipos de documentos'),('6',
>     'RUC'),('1', 'DNI'),('4', 'C. EXT.'),('7',
>     'Pasaporte'),('A',u'Cédula Diplomática de Identidad'),]
>             pool = Pool()
>             Type = pool.get('sunat.tipodocid')
>             types = Type.search([('active','=','True')])
>             return [(x.code, x.name <http://x.name>) for x in types]
>
>     El trace del error:
>     Traceback (most recent call last):
>       File "/home/nando/.virtualenvs/liberorbis46/bin/trytond-admin",
>     line 21, in <module>
>         admin.run(options)
>       File
>     
> "/home/nando/.virtualenvs/liberorbis46/local/lib/python2.7/site-packages/trytond/admin.py",
>     line 54, in run
>         installdeps=options.installdeps)
>       File
>     
> "/home/nando/.virtualenvs/liberorbis46/local/lib/python2.7/site-packages/trytond/pool.py",
>     line 155, in init
>         lang=lang, installdeps=installdeps)
>       File
>     
> "/home/nando/.virtualenvs/liberorbis46/local/lib/python2.7/site-packages/trytond/modules/__init__.py",
>     line 462, in load_modules
>         _load_modules(update)
>       File
>     
> "/home/nando/.virtualenvs/liberorbis46/local/lib/python2.7/site-packages/trytond/modules/__init__.py",
>     line 432, in _load_modules
>         load_module_graph(graph, pool, update, lang)
>       File
>     
> "/home/nando/.virtualenvs/liberorbis46/local/lib/python2.7/site-packages/trytond/modules/__init__.py",
>     line 229, in load_module_graph
>         pool.setup(classes)
>       File
>     
> "/home/nando/.virtualenvs/liberorbis46/local/lib/python2.7/site-packages/trytond/pool.py",
>     line 227, in setup
>         cls.__setup__()
>       File
>     
> "/home/nando/.virtualenvs/liberorbis46/local/lib/python2.7/site-packages/trytond/modules/liberorbis_peru_loc/party.py",
>     line 66, in __setup__
>         tiposdocid = cls.get_types()
>       File
>     
> "/home/nando/.virtualenvs/liberorbis46/local/lib/python2.7/site-packages/trytond/modules/liberorbis_peru_loc/party.py",
>     line 76, in get_types
>         types = Type.search([('active','=','True')])
>       File
>     
> "/home/nando/.virtualenvs/liberorbis46/local/lib/python2.7/site-packages/trytond/model/modelsql.py",
>     line 1128, in search
>         tables, expression = cls.search_domain(domain)
>       File
>     
> "/home/nando/.virtualenvs/liberorbis46/local/lib/python2.7/site-packages/trytond/model/modelsql.py",
>     line 1286, in search_domain
>         domain = cls._search_domain_active(domain,
>     active_test=active_test)
>       File
>     
> "/home/nando/.virtualenvs/liberorbis46/local/lib/python2.7/site-packages/trytond/model/modelstorage.py",
>     line 407, in _search_domain_active
>         if not ('active' in cls._fields
>     AttributeError: type object
>     ​​
>     'sunat.tipodocid' has no attribute '_fields'
>
>
> ​Hola Fernando,
> no sé, pero si fuera tú, revisaría el orden en el cual se registran
> las clases en el Pool en __init__.py y me aseguraría que la clase
> ​'sunat.tipodocid' se registre antes que ​PartyIdentifier.
> ​
> ​Saludos,
> Karla.​
>
> -- 
> -------------------------
> Karla  Mª  Stenger  Sábat
> karla.sten...@gmail.com <mailto:karla.sten...@gmail.com>

Reply via email to