From cb9cac7b542e4252f3e99d824f0f10ae6fffca6e Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 13 Aug 2026 14:21:30 -0700 Subject: [PATCH] Do this as a bulk_update --- src/documents/bulk_edit.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/documents/bulk_edit.py b/src/documents/bulk_edit.py index 17dbfa760..42de7b70f 100644 --- a/src/documents/bulk_edit.py +++ b/src/documents/bulk_edit.py @@ -664,17 +664,24 @@ def merge_as_versions( if documents_by_id[source_id].archive_serial_number is not None ] + updated_fields = ["root_document", "version_index", "archive_serial_number"] + if version_label is not None: + updated_fields.append("version_label") + for source_id in source_ids: next_version_index += 1 - updates = { - "root_document_id": root_document.pk, - "version_index": next_version_index, - "archive_serial_number": None, - } + source_document = documents_by_id[source_id] + source_document.root_document_id = root_document.pk + source_document.version_index = next_version_index + source_document.archive_serial_number = None if version_label is not None: - updates["version_label"] = version_label - # update() and not save to avoid post_save now - Document.objects.filter(pk=source_id).update(**updates) + source_document.version_label = version_label + + # bulk_update and not save() to avoid post_save now + Document.objects.bulk_update( + [documents_by_id[source_id] for source_id in source_ids], + updated_fields, + ) root_updates = {"modified": timezone.now()} if source_asns and root_document.archive_serial_number is None: