diff --git a/src/backend/core/management/commands/import_migration.py b/src/backend/core/management/commands/import_migration.py index 6b12170a1..b019272e7 100644 --- a/src/backend/core/management/commands/import_migration.py +++ b/src/backend/core/management/commands/import_migration.py @@ -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