Il giorno sabato 13 gennaio 2018 11:05:07 UTC+1, Cédric Krier ha scritto: > On 2018-01-13 01:31, Cato Nano wrote: > > Il giorno venerdì 12 gennaio 2018 23:45:06 UTC+1, Cédric Krier ha scritto: > > > On 2018-01-10 09:03, Cato Nano wrote: > > > > I have these 2 fields > > > > > > > > numeroGiorni = fields.Function(fields.Integer('Numero > > > > Giorni'),'on_change_with_numeroGiorni') > > > > @fields.depends('dataInizio', 'dataFine') > > > > def on_change_with_numeroGiorni(self, name=None): > > > > if self.dataInizio and self.dataFine: > > > > return abs((self.dataFine - self.dataInizio).days) + 1 > > > > return 0 > > > > > > > > [...] > > > > > > > > fattoreGiorni = fields.Function(fields.Numeric('fattoreGiorni'), > > > > 'on_change_with_fattoreGiorni') > > > > > > > > @fields.depends('numeroGiorni') > > > > def on_change_with_fattoreGiorni(self, name=None): > > > > return (self.numeroGiorni - 10) / 5 > > > > > > > > > > > > fattoreGiorni DOESN'T get assigned > > > > I can't see why > > > > > > It is difficult to answer without having more information about the > > > scenario you are following. > > > > > > But already there are some potential issues like using the value of a > > > field without checking if it is not 'None'. > > > Also be aware that Function fields does not trigger other on_change*, > > > indeed you must make the other one depending on the first one. It should > > > look like that: > > > > > > @fields.depends(methods='numeroGiorni') > > @fields.depends(methods=['numeroGiorni']) > > > > def on_change_with_fattoreGiorni(self, name=None): > > > numeroGiorni = self.on_change_with_numeroGiorni() > > > return (numeroGiorni - 10) / 5 > > > > > > > > > So with this variant of yours, when I issue > > > > trytond-admin -c ./trytond.conf -d tryton -u tributi > > > > > > I get these errors > > > > Traceback (most recent call last): > > File "/home/catonano/tributi/env/bin/trytond-admin", line 21, in <module> > > admin.run(options) > > File > > "/home/catonano/tributi/env/lib/python3.6/site-packages/trytond/admin.py", > > line 54, in run > > installdeps=options.installdeps) > > File > > "/home/catonano/tributi/env/lib/python3.6/site-packages/trytond/pool.py", > > line 153, in init > > lang=lang, installdeps=installdeps) > > File > > "/home/catonano/tributi/env/lib/python3.6/site-packages/trytond/modules/__init__.py", > > line 462, in load_modules > > _load_modules(update) > > File > > "/home/catonano/tributi/env/lib/python3.6/site-packages/trytond/modules/__init__.py", > > line 432, in _load_modules > > load_module_graph(graph, pool, update, lang) > > File > > "/home/catonano/tributi/env/lib/python3.6/site-packages/trytond/modules/__init__.py", > > line 229, in load_module_graph > > pool.setup(classes) > > File > > "/home/catonano/tributi/env/lib/python3.6/site-packages/trytond/pool.py", > > line 227, in setup > > cls.__post_setup__() > > File > > "/home/catonano/tributi/env/lib/python3.6/site-packages/trytond/model/modelview.py", > > line 195, in __post_setup__ > > other_field = getattr(cls, other) > > AttributeError: type object 'tributi.affissione' has no attribute 'i' > > See correction above. > > -- > Cédric Krier - B2CK SPRL > Email/Jabber: cedric.kr...@b2ck.com > Tel: +32 472 54 46 59 > Website: http://www.b2ck.com/
I think it could be @fields.depends(methods=['numeroGiorni']) def on_change_with_fattoreGiorni(self, name=None): numeroGiorni = self.on_change_with_numeroGiorni() return (numeroGiorni - 10) / 5 with square brackets around 'numeroGiorni' I can' t try right now, but I will. Soon -- You received this message because you are subscribed to the Google Groups "tryton" group. To view this discussion on the web visit https://groups.google.com/d/msgid/tryton/6ae7a612-ca9e-4edc-b46b-8a032ba5406b%40googlegroups.com.