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
<javascript:>
Post by Fernando SánchezSaludos 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"
http://hg.tryton.org/modules/account_payment_stripe/file/199ba42de12c/payment.py#l35
Un saludo,
--
Sergi Almacellas Abellana
www.koolpi.com