if restoring a deleted object … potentially remove from changeset
This commit is contained in:
parent
bcff9796ee
commit
69d93ddf38
2 changed files with 9 additions and 0 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue