Rafał Pitoń 8 лет назад
Родитель
Сommit
5fb6864c55
1 измененных файлов с 25 добавлено и 2 удалено
  1. 25 2
      misago/datamover/users.py

+ 25 - 2
misago/datamover/users.py

@@ -2,6 +2,7 @@ from django.contrib.auth import get_user_model
 from django.core.exceptions import ValidationError
 from django.utils.crypto import get_random_string
 
+from misago.users.models import UsernameChange
 from misago.users.signatures import make_signature_checksum
 
 from . import defstdout, fetch_assoc, movedids, localise_datetime
@@ -118,5 +119,27 @@ def move_blocks(stdout=None):
 
 
 def move_namehistory(stdout):
-    pass
-
+    for user in fetch_assoc(
+            'SELECT DISTINCT user_id FROM misago_usernamechange ORDER BY user_id'):
+        new_id = movedids.get('user', user['user_id'])
+        new_user = UserModel.objects.get(pk=new_id)
+        move_users_namehistory(new_user, user['user_id'])
+
+
+def move_users_namehistory(user, old_id):
+    username_history = []
+    for namechange in fetch_assoc(
+            'SELECT * FROM misago_usernamechange WHERE user_id = %s  ORDER BY id', [old_id]):
+        if username_history:
+            username_history[-1].new_username = namechange['old_username']
+
+        username_history.append(UsernameChange(
+            user=user,
+            changed_by=user,
+            changed_by_username=user.username,
+            changed_on=localise_datetime(namechange['date']),
+            new_username=user.username,
+            old_username=namechange['old_username']
+        ))
+
+    UsernameChange.objects.bulk_create(username_history)