I have a wizard to modify data from a model (pretty similar to
http://hg.tryton.org/modules/sale/file/default/sale.py#l1861)
so we have a method default_start:
def default_start(self, fields):
batch = self.get_batch()
defaults = {}
for fieldname in fields:
value = getattr(batch, fieldname)
if isinstance(value, Model):
if getattr(batch.__class__, fieldname)._type == 'reference':
value = str(value)
else:
value =
value.id
elif isinstance(value, (list, tuple)):
value = [
r.id for r in value]
defaults[fieldname] = value
defaults['state'] = 'draft'
return defaults
On write method I check that the batch is on draft state so it should fail but
as I put the state to 'draft' on the default_start method now I can write without any problem. That is to say, I have mimiced a draft mode so I can modify the model using the write method. And so it happens and it works using Tryton client.
Now if I do this on proteus:
>>> edit_batch = Wizard('agro.farm.batch.edit', [batch])
>>> edit_batch.execute('modify')
The test fails because of domain (the check I said I had on the write method). So it is like the draft is not considered on proteus or something weird happens