[FIX] base_changeset: assign values for all computed fields
parent
ace747368d
commit
d43b2c1eb8
|
@ -155,14 +155,24 @@ class RecordChangesetChange(models.Model):
|
||||||
@api.depends("changeset_id.res_id", "changeset_id.model")
|
@api.depends("changeset_id.res_id", "changeset_id.model")
|
||||||
def _compute_origin_values(self):
|
def _compute_origin_values(self):
|
||||||
states = self.get_pending_changes_states()
|
states = self.get_pending_changes_states()
|
||||||
|
field_names = [
|
||||||
|
field_name
|
||||||
|
for field_name in self._fields.keys()
|
||||||
|
if field_name.startswith("origin_value_")
|
||||||
|
and field_name != "origin_value_display"
|
||||||
|
]
|
||||||
for rec in self:
|
for rec in self:
|
||||||
field_name = rec.get_field_for_type(rec.field_id, "origin")
|
field_name = rec.get_field_for_type(rec.field_id, "origin")
|
||||||
|
for fname in field_names:
|
||||||
|
if fname == field_name:
|
||||||
if rec.state in states:
|
if rec.state in states:
|
||||||
value = rec.record_id[rec.field_id.name]
|
value = rec.record_id[rec.field_id.name]
|
||||||
else:
|
else:
|
||||||
old_field = rec.get_field_for_type(rec.field_id, "old")
|
old_field = rec.get_field_for_type(rec.field_id, "old")
|
||||||
value = rec[old_field]
|
value = rec[old_field]
|
||||||
setattr(rec, field_name, value)
|
setattr(rec, fname, value)
|
||||||
|
else:
|
||||||
|
setattr(rec, fname, False)
|
||||||
|
|
||||||
@api.depends(lambda self: self._value_fields)
|
@api.depends(lambda self: self._value_fields)
|
||||||
def _compute_value_display(self):
|
def _compute_value_display(self):
|
||||||
|
|
|
@ -115,6 +115,8 @@ class TestChangesetFlow(ChangesetTestCommon, TransactionCase):
|
||||||
self.assertEqual(self.partner.count_pending_changesets, 0)
|
self.assertEqual(self.partner.count_pending_changesets, 0)
|
||||||
self.assertEqual(self.partner.name, "Y")
|
self.assertEqual(self.partner.name, "Y")
|
||||||
self.assertEqual(changeset.change_ids.state, "done")
|
self.assertEqual(changeset.change_ids.state, "done")
|
||||||
|
# All computed fields are assigned
|
||||||
|
changeset.change_ids.read()
|
||||||
|
|
||||||
def test_apply_done_change(self):
|
def test_apply_done_change(self):
|
||||||
""" Done changes do not apply (already applied) """
|
""" Done changes do not apply (already applied) """
|
||||||
|
|
Loading…
Reference in New Issue