✨(migration) import_migration management command imports Favorites

Straightforward DocumentFavorite import

Signed-off-by: Mathieu Agopian <mathieu@agopian.info>
This commit is contained in:
Mathieu Agopian
2026-10-07 11:00:57 +02:00
parent c2d9600189
commit 954c3170eb
@@ -25,6 +25,7 @@ from core.models import (
Document,
DocumentAccess,
DocumentAskForAccess,
DocumentFavorite,
Invitation,
LinkTrace,
User,
@@ -107,6 +108,10 @@ class Command(BaseCommand):
created = self._import_document_ask_for_access(
pk, fields, user_uuid_remap
)
case "core.documentfavorite":
created = self._import_document_favorite(
pk, fields, user_uuid_remap
)
case _:
if model_label not in skipped_models:
self.stderr.write(
@@ -344,3 +349,19 @@ class Command(BaseCommand):
[DocumentAskForAccess(**fields, id=pk)]
)
return True
def _import_document_favorite(self, pk, fields, user_uuid_remap):
"""
Import one document favorite record.
Returns True if a new row was created, False if it already existed.
"""
user_id = fields.get("user_id")
if user_id and user_id in user_uuid_remap:
fields["user_id"] = user_uuid_remap[user_id]
if DocumentFavorite.objects.filter(id=pk).exists():
return False
DocumentFavorite.objects.bulk_create([DocumentFavorite(**fields, id=pk)])
return True