El 1 de diciembre de 2017, 10:32, Fernando Sánchez <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) 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

Responder a