El 10/09/16 a les 18:56, Luis Martinez ha escrit:
Buenas tardes, estoy tratando de modificar el módulo analytic_product de la versión 3.4, que ya he utilizado anteriormente, para que funcione en la versión 3.8, al ejecutarlo previo a hacer cualquier modificación me arroja el siguiente error:Traceback (most recent call last): File "/home//trytond/protocols/dispatcher.py", line 167, in dispatch result = rpc.result(meth(inst, *c_args, **c_kwargs)) File "/home//trytond/model/modelview.py", line 649, in on_change method() File "/home//trytond/model/modelview.py", line 84, in wrapper result = func(self, *args, **kwargs) File "/home//trytond/model/fields/field.py", line 89, in wrapper return func(self, *args, **kwargs) File "/home//trytond/modules/sale_pos/sale.py", line 292, in on_change_product super(SaleLine, self).on_change_product() File "/home//trytond/model/modelview.py", line 84, in wrapper result = func(self, *args, **kwargs) File "/home//trytond/model/fields/field.py", line 89, in wrapper return func(self, *args, **kwargs) File "/home//trytond/modules/analytic_product/product.py", line 260, in on_change_product res[key] = account.id TypeError: 'sale.line' object does not support item assignment Esta es la parte del código donde está arrojándome el error: class AnalyticProductMixin: @fields.depends('product') def on_change_product(self): try: res = super(AnalyticProductMixin, self).on_change_product() except: res = {} if self.product and self.product.analytic_accounts: for account in self.product.analytic_accounts.accounts: key = 'analytic_account_%d' % account.root.id res[key] = account.id return res
A partir de la versión 3.6 los métodos on_change no deben devolver ninguna información sino que deben assignar directamente los attributos. Es un cambio necessario para que el módulo funcione en nuevas versiones.
Deberias hechar un vistazo a la categoria migración[1] de disccuss para ver los cambios que se necessitan hacer en los módulos para adaptarlos a nuevas versiones.
Si vas a migrar de la 3.4 a la 3.8, debes aplicar los cambios de 3.4 a 3.6 y de 3.6 a 3.8.
De todos modos, ya que vas a migrar modulos a nuevas versiones estaria bien que migrases a la última versión estable. En este caso 4.0
Un saludo, [1] https://discuss.tryton.org/c/migration -- Sergi Almacellas Abellana www.koolpi.com Twitter: @pokoli_srk
