diff --git a/src/documents/admin.py b/src/documents/admin.py index aad649acb..c6f179e2a 100644 --- a/src/documents/admin.py +++ b/src/documents/admin.py @@ -44,7 +44,7 @@ class TagAdmin(GuardedModelAdmin, TreeNodeModelAdmin): # sync parent tags on documents if changed new_parent = obj.get_parent() - if old_parent != new_parent: + if new_parent and old_parent != new_parent: update_document_parent_tags(obj, new_parent) diff --git a/src/documents/tasks.py b/src/documents/tasks.py index 0be16274d..1f491a0e9 100644 --- a/src/documents/tasks.py +++ b/src/documents/tasks.py @@ -517,14 +517,11 @@ def check_scheduled_workflows(): ) -def update_document_parent_tags(tag: Tag, new_parent: Tag | None) -> None: +def update_document_parent_tags(tag: Tag, new_parent: Tag) -> None: """ When a tag's parent changes, ensure all documents containing the tag also have the parent tag (and its ancestors) applied. """ - if new_parent is None: - return - DocumentTagRelationship = Document.tags.through doc_ids: list[int] = list( diff --git a/src/documents/views.py b/src/documents/views.py index 21a6ba082..4bd3707ce 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -346,7 +346,7 @@ class TagViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin): old_parent = self.get_object().get_parent() tag = serializer.save() new_parent = tag.get_parent() - if old_parent != new_parent: + if new_parent and old_parent != new_parent: update_document_parent_tags(tag, new_parent)