move merge to background tasks

This commit is contained in:
Your Name 2024-06-20 14:54:46 -04:00 committed by Henri Dickson
parent 29d9b18fbc
commit b855bd2eb7
3 changed files with 13 additions and 3 deletions

View file

@ -10,7 +10,7 @@ from django.views.decorators.http import require_http_methods
from loguru import logger
from common.utils import discord_send, get_uuid_or_404
from journal.models import update_journal_for_merged_item
from journal.models import update_journal_for_merged_item_task
from .common.models import ExternalResource, IdealIdTypes, IdType
from .forms import *
@ -289,7 +289,9 @@ def merge(request, item_path, item_uuid):
)
logger.warning(f"{request.user} merges {item} to {new_item}")
item.merge_to(new_item)
update_journal_for_merged_item(item_uuid)
django_rq.get_queue("crawl").enqueue(
update_journal_for_merged_item_task, request.user.pk, item.uuid
)
discord_send(
"audit",
f"{item.absolute_url}?skipcheck=1\n\n{new_item.absolute_url}\nby [@{request.user.username}]({request.user.absolute_url})",

View file

@ -26,6 +26,7 @@ from .utils import (
remove_data_by_user,
reset_journal_visibility_for_user,
update_journal_for_merged_item,
update_journal_for_merged_item_task,
)
__all__ = [
@ -61,4 +62,5 @@ __all__ = [
"remove_data_by_user",
"reset_journal_visibility_for_user",
"update_journal_for_merged_item",
"update_journal_for_merged_item_task",
]

View file

@ -1,10 +1,11 @@
from auditlog.context import set_actor
from django.db import transaction
from django.db.utils import IntegrityError
from django.utils.translation import gettext_lazy as _
from loguru import logger
from catalog.models import Item
from users.models import APIdentity
from users.models import APIdentity, User
from .collection import Collection, CollectionMember, FeaturedCollection
from .comment import Comment
@ -36,6 +37,11 @@ def remove_data_by_user(owner: APIdentity):
FeaturedCollection.objects.filter(owner=owner).delete()
def update_journal_for_merged_item_task(editing_user_id: int, legacy_item_uuid: str):
with set_actor(User.objects.get(pk=editing_user_id)):
update_journal_for_merged_item(legacy_item_uuid)
def update_journal_for_merged_item(
legacy_item_uuid: str, delete_duplicated: bool = False
):