[FIX] base_changeset: no change for empty values on create
Regression of previous commitpull/2380/head
parent
8557d1163f
commit
5d31b7e0ea
|
@ -133,7 +133,11 @@ class RecordChangeset(models.Model):
|
||||||
)
|
)
|
||||||
for field in values:
|
for field in values:
|
||||||
rule = rules.get(field)
|
rule = rules.get(field)
|
||||||
if not rule or not rule._evaluate_expression(record):
|
if (
|
||||||
|
not rule
|
||||||
|
or not rule._evaluate_expression(record)
|
||||||
|
or (create and not values[field])
|
||||||
|
):
|
||||||
continue
|
continue
|
||||||
if field in values:
|
if field in values:
|
||||||
if not create and not change_model._has_field_changed(
|
if not create and not change_model._has_field_changed(
|
||||||
|
|
|
@ -104,6 +104,34 @@ class TestChangesetFlow(ChangesetTestCommon, TransactionCase):
|
||||||
self.assertFalse(new.street)
|
self.assertFalse(new.street)
|
||||||
self.assertFalse(new.street2)
|
self.assertFalse(new.street2)
|
||||||
|
|
||||||
|
def test_create_new_changeset_empty_value(self):
|
||||||
|
"""No change is created for empty values on create"""
|
||||||
|
new = (
|
||||||
|
self.env["res.partner"]
|
||||||
|
.with_context(test_record_changeset=True)
|
||||||
|
.create(
|
||||||
|
{
|
||||||
|
"name": "partner",
|
||||||
|
"street": "street",
|
||||||
|
"street2": False,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
new._compute_changeset_ids()
|
||||||
|
new._compute_count_pending_changesets()
|
||||||
|
self.assertEqual(new.count_pending_changesets, 1)
|
||||||
|
self.assert_changeset(
|
||||||
|
new,
|
||||||
|
self.env.user,
|
||||||
|
[
|
||||||
|
(self.field_name, False, "partner", "done"),
|
||||||
|
(self.field_street, False, "street", "draft"),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
self.assertEqual(new.name, "partner")
|
||||||
|
self.assertFalse(new.street)
|
||||||
|
self.assertFalse(new.street2)
|
||||||
|
|
||||||
def test_new_changeset_empty_value(self):
|
def test_new_changeset_empty_value(self):
|
||||||
"""Create a changeset change that empty a value"""
|
"""Create a changeset change that empty a value"""
|
||||||
self.partner.write({"street": False})
|
self.partner.write({"street": False})
|
||||||
|
|
Loading…
Reference in New Issue