From d222239110c97abf55d8c408782b40809e1f2c21 Mon Sep 17 00:00:00 2001
From: vrigal <rigal@teklia.com>
Date: Mon, 2 Dec 2019 12:26:30 +0100
Subject: [PATCH] Handle BALSAC data in migration

---
 .../migrations/0028_structure_metadata.py     | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/arkindex/documents/migrations/0028_structure_metadata.py b/arkindex/documents/migrations/0028_structure_metadata.py
index ab9d6e47d3..bca21aac81 100644
--- a/arkindex/documents/migrations/0028_structure_metadata.py
+++ b/arkindex/documents/migrations/0028_structure_metadata.py
@@ -1,5 +1,19 @@
 from django.db import migrations
 from arkindex_common.enums import MetaType
+from django.db.models import Q
+
+
+def update_balsac_pages(apps, schema_editor):
+    MetaData = apps.get_model('documents', 'MetaData')
+    balsac_struct_metadata = MetaData.objects \
+        .filter(
+            element__corpus__name__in=('Balsac | S3', 'Balsac | From S3'),
+            element__type__slug='page'
+        ).filter(
+            Q(name="name") | Q(name="filename")
+        )
+    renamed_count = balsac_struct_metadata.update(name='Reference')
+    print('Renamed {} metadata from BALSAC corpora'.format(renamed_count))
 
 
 def structure_metadata(apps, schema_editor):
@@ -7,7 +21,9 @@ def structure_metadata(apps, schema_editor):
     Update reference
     """
     MetaData = apps.get_model('documents', 'MetaData')
-    MetaData.objects.filter(name='Reference').update(type=MetaType.Structure)
+    references = MetaData.objects.filter(Q(name='Reference') | Q(name='reference'), type=MetaType.Text)
+    moved_count = references.update(type=MetaType.Structure)
+    print('Moved {} reference metadata to Structure type'.format(moved_count))
 
 
 def reverse_migration(apps, schema_editor):
@@ -22,5 +38,6 @@ class Migration(migrations.Migration):
     ]
 
     operations = [
+        migrations.RunPython(update_balsac_pages, migrations.RunPython.noop),
         migrations.RunPython(structure_metadata, reverse_migration)
     ]
-- 
GitLab