From 356815ca62748ac690c471d7f5f321fc38a589fe Mon Sep 17 00:00:00 2001
From: Tom Teichler <tom.teichler@teckids.org>
Date: Sat, 28 Mar 2020 22:57:09 +0100
Subject: [PATCH] Add data migration

---
 .../migrations/0017_use_complex_name_field.py | 41 ++++++++++---------
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/aleksis/core/migrations/0017_use_complex_name_field.py b/aleksis/core/migrations/0017_use_complex_name_field.py
index 2139a68b7..b29b9b6c6 100644
--- a/aleksis/core/migrations/0017_use_complex_name_field.py
+++ b/aleksis/core/migrations/0017_use_complex_name_field.py
@@ -2,6 +2,14 @@
 
 from django.db import migrations, models
 
+def rewrite_names(apps, schema_editor)
+    db_alias = schema_editor.connection.alias
+
+    Person = apps.get_model("core", "Person")
+
+    Person.objects.using(db_alias).update(
+        first=models.F("first_name"), middle=models.F("additional_name"), last=models.F("last_name")
+    )
 
 class Migration(migrations.Migration):
 
@@ -14,18 +22,6 @@ class Migration(migrations.Migration):
             name='person',
             options={'ordering': ['first', 'last'], 'verbose_name': 'Person', 'verbose_name_plural': 'Persons'},
         ),
-        migrations.RemoveField(
-            model_name='person',
-            name='additional_name',
-        ),
-        migrations.RemoveField(
-            model_name='person',
-            name='first_name',
-        ),
-        migrations.RemoveField(
-            model_name='person',
-            name='last_name',
-        ),
         migrations.AddField(
             model_name='person',
             name='first',
@@ -62,14 +58,19 @@ class Migration(migrations.Migration):
             name='title',
             field=models.CharField(blank=True, max_length=100, verbose_name='Title'),
         ),
-        migrations.AlterField(
-            model_name='notification',
-            name='sender',
-            field=models.CharField(max_length=100, verbose_name='Sender'),
+        migrations.RunPython(
+            rewrite_names
+        ),
+        migrations.RemoveField(
+            model_name='person',
+            name='additional_name',
+        ),
+        migrations.RemoveField(
+            model_name='person',
+            name='first_name',
         ),
-        migrations.AlterField(
-            model_name='notification',
-            name='sent',
-            field=models.BooleanField(default=False, verbose_name='Sent'),
+        migrations.RemoveField(
+            model_name='person',
+            name='last_name',
         ),
     ]
-- 
GitLab