diff options
Diffstat (limited to 'ishtar_common/utils_migrations.py')
-rw-r--r-- | ishtar_common/utils_migrations.py | 29 |
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) |