diff --git a/src/documents/migrations/0014_auto_20180502_0852.py b/src/documents/migrations/0014_auto_20180502_0852.py index bad892dee92e0b755e699373da473b8d5e8e66bb..27cc54c662f966b0e3abe280f9cb783dbab649f6 100644 --- a/src/documents/migrations/0014_auto_20180502_0852.py +++ b/src/documents/migrations/0014_auto_20180502_0852.py @@ -10,8 +10,7 @@ def transcription_to_document(apps, schema_editor): DocumentLink = apps.get_model('documents', 'DocumentLink') nb = Transcription.objects.count() last = 0 - links = [] - for i, ts in enumerate(Transcription.objects.all()): + for i, ts in enumerate(Transcription.objects.all().prefetch_related('zone__image')): percent = int(100.0 * (i + 1) / nb) if percent % 5 == 0 and last != percent: print(' > {0: >3}% => {1: >6} / {2}'.format(percent, i, nb)) @@ -20,11 +19,10 @@ def transcription_to_document(apps, schema_editor): doc.zones.add(ts.zone) ts.document_ptr_id = doc.id ts.save() - max_order_dl = DocumentLink.objects.filter(parent_id=ts.zone.document.id).order_by('-order').first() + parent_id = Document.objects.filter(type=DocumentType.Page, zones__image__id=ts.zone.image.id).only('id').get().id + max_order_dl = DocumentLink.objects.filter(parent_id=parent_id).order_by('-order').only('order').first() order = 0 if max_order_dl is None else max_order_dl.order + 1 - links.append(DocumentLink(parent_id=ts.zone.document.id, child_id=doc.id, order=order)) - print('Saving document links...') - DocumentLink.objects.bulk_create(links) + DocumentLink.objects.create(parent_id=parent_id, child_id=doc.id, order=order) class Migration(migrations.Migration):