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) | 
