From 01310922668967b43988a8a5c4b47d656e92e943 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Wed, 13 Sep 2023 18:07:26 -0400
Subject: [PATCH] fix: improve migration of existing tags

---
 program/migrations/0073_alter_note_tags.py | 24 ++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/program/migrations/0073_alter_note_tags.py b/program/migrations/0073_alter_note_tags.py
index 11a1d2d4..f8c8102d 100644
--- a/program/migrations/0073_alter_note_tags.py
+++ b/program/migrations/0073_alter_note_tags.py
@@ -1,17 +1,37 @@
 # Generated by Django 4.2.2 on 2023-09-06 02:31
+import json
 
 from django.db import migrations, models
 
 
+def split_old_tags(apps, _):
+    Note = apps.get_model("program", "Note")
+
+    for note in Note.objects.exclude(old_tags=""):
+        note.tags = json.dumps([tag.strip() for tag in note.old_tags.split(",")])
+
+        note.save()
+
+
 class Migration(migrations.Migration):
     dependencies = [
         ("program", "0072_timeslot_language_timeslot_topic"),
     ]
 
     operations = [
-        migrations.AlterField(
+        migrations.RenameField(
             model_name="note",
-            name="tags",
+            new_name="old_tags",
+            old_name="tags",
+        ),
+        migrations.AddField(
             field=models.JSONField(blank=True),
+            model_name="note",
+            name="tags",
         ),
+        migrations.RunPython(code=split_old_tags),
+        migrations.RemoveField(
+            model_name="note",
+            name="old_tags",
+        )
     ]
-- 
GitLab