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'
Agradecer las posibles respuestas otra vez.
Fernando
El viernes, 1 de diciembre de 2017, 3:10:28 (UTC-5), Sergi Almacellas
Abellana escribió:
>
> El 01/12/17 a les 07:44, Raimon Esteve ha escrit:
> >
> >
> > El dia 1 des. 2017 7:13 a. m., "Fernando Sánchez" <[email protected]
> <javascript:>
> > <mailto:[email protected] <javascript:>>> va escriure:
> >
> > Saludos a la comunidad,
> >
> > En esta oportunidad necesito luces para extender la clase
> > party.identifier de la versión 4.6
> > El campo "type" de esta clase es del tipo fields.Selection, que
> > hasta la version 4.2 obtenía sus valores via la función get_types,
> > así para extenderlo en mi modulo solo redefinia la función get_types
> > con los valores que obtenía de una tabla.
> >
> > type = fields.Selection('get_types', 'Type')
> >
> > Sucede que en la versión 4.6 ya no se usa get_types sino que se
> > asignan los valores de manera estática
> >
> > type = fields.Selection([
> > (None, ''),
> > ('eu_vat', 'VAT'),
> > ], 'Type')
> >
> > Me gustaría saber como puedo redefinir los valores de type en mi
> > modulo personalizado.
> >
> > Saludos y agradecimiento anticipado.
> >
> >
> > Seria lo mismo en el __setup__ y añadir mas opcions en la llista del
> > atributo "selectiu" de "cls.type"
> El attributo es selection. A continuación te dejo un ejemplo:
>
>
> http://hg.tryton.org/modules/account_payment_stripe/file/199ba42de12c/payment.py#l35
>
>
> Un saludo,
>
> --
> Sergi Almacellas Abellana
> www.koolpi.com
> Twitter: @pokoli_srk
>