From 6301d857d072ccc2bfe5c9156eb96c0f6bac5af2 Mon Sep 17 00:00:00 2001
From: Erwan Rouchet <rouchet@teklia.com>
Date: Fri, 4 May 2018 10:56:37 +0200
Subject: [PATCH] Fix the fixed fix for the fixed migration fix

---
 src/documents/migrations/0014_auto_20180502_0852.py | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/documents/migrations/0014_auto_20180502_0852.py b/src/documents/migrations/0014_auto_20180502_0852.py
index bad892dee9..27cc54c662 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):
-- 
GitLab