summaryrefslogtreecommitdiff
path: root/ishtar_common/utils_migrations.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/utils_migrations.py')
-rw-r--r--ishtar_common/utils_migrations.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/ishtar_common/utils_migrations.py b/ishtar_common/utils_migrations.py
index 9f514ea48..48e9e4f9b 100644
--- a/ishtar_common/utils_migrations.py
+++ b/ishtar_common/utils_migrations.py
@@ -46,3 +46,32 @@ def migrate_simple_image_to_m2m(base_model, image_model, rel_model,
print(base_model)
print("{} missing".format(missing))
print("{} moved".format(moved))
+
+
+def migrate_images(apps, base_model, rel_model):
+ IshtarImage = apps.get_model('ishtar_common', 'IshtarImage')
+ Document = apps.get_model('ishtar_common', 'Document')
+ for image_rel in rel_model.objects.order_by('is_main').all():
+ image = IshtarImage.objects.get(pk=image_rel.image.pk)
+ doc = Document.objects.create(image=image.image,
+ thumbnail=image.thumbnail)
+ item = base_model.objects.get(pk=image_rel.item.pk)
+ item.documents.add(doc)
+
+
+def migrate_sources(apps, base_model, source_model, item_attr):
+ Document = apps.get_model('ishtar_common', 'Document')
+ for source in source_model.objects.all():
+ doc = Document.objects.create()
+ for attr in ['title', 'index', 'external_id', 'reference',
+ 'internal_reference', 'source_type', 'support_type',
+ 'format_type', 'scale', 'associated_url', 'receipt_date',
+ 'creation_date', 'receipt_date_in_documentation',
+ 'item_number', 'description', 'comment',
+ 'additional_information', 'duplicate']:
+ setattr(doc, attr, getattr(source, attr))
+ doc.save()
+ for author in source.authors.all():
+ doc.authors.add(author)
+ item = base_model.objects.get(pk=getattr(source, item_attr).pk)
+ item.documents.add(doc)