if restoring a deleted object … potentially remove from changeset

This commit is contained in:
Laura Klünder 2024-12-05 14:14:58 +01:00
parent bcff9796ee
commit 69d93ddf38
2 changed files with 9 additions and 0 deletions

View file

@ -26,6 +26,10 @@ class ChangedManyToMany(BaseSchema):
added: list[ObjectID] = []
removed: list[ObjectID] = []
@property
def __bool__(self):
return not (self.cleared or self.added or self.removed)
class ChangedObject(BaseSchema):
obj: ObjectReference
@ -35,6 +39,9 @@ class ChangedObject(BaseSchema):
fields: FieldValuesDict = {}
m2m_changes: dict[FieldName, ChangedManyToMany] = {}
def __bool__(self):
return self.created or self.deleted or self.fields or any(self.m2m_changes.values())
class OperationDependencyObjectExists(BaseSchema):
model_config = ConfigDict(frozen=True)

View file

@ -48,6 +48,8 @@ def changeset_detail(request, pk):
messages.error(request, _("Can't restore this object because it wasn't deleted"))
else:
changed_object.deleted = False
if not changed_object:
changeset.changes.objects[changed_object.obj.model].pop(changed_object.obj.id)
update = changeset.updates.create(user=request.user, objects_changed=True)
changeset.last_update = update
changeset.last_change = update