From 01490677a3d97f9ac0a80790b71db1697cd41855 Mon Sep 17 00:00:00 2001
From: Jorran de Wit <jorrandewit@outlook.com>
Date: Fri, 30 Nov 2018 16:00:15 +0100
Subject: [PATCH] Renovation 2

---
 .../0045_submission_is_resubmission_of.py     | 21 +++++++++++++++
 .../migrations/0046_auto_20181130_1013.py     | 26 +++++++++++++++++++
 2 files changed, 47 insertions(+)
 create mode 100644 submissions/migrations/0045_submission_is_resubmission_of.py
 create mode 100644 submissions/migrations/0046_auto_20181130_1013.py

diff --git a/submissions/migrations/0045_submission_is_resubmission_of.py b/submissions/migrations/0045_submission_is_resubmission_of.py
new file mode 100644
index 000000000..a0ea4d2eb
--- /dev/null
+++ b/submissions/migrations/0045_submission_is_resubmission_of.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-11-30 09:13
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('submissions', '0044_auto_20181115_1009'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='submission',
+            name='is_resubmission_of',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='successor', to='submissions.Submission'),
+        ),
+    ]
diff --git a/submissions/migrations/0046_auto_20181130_1013.py b/submissions/migrations/0046_auto_20181130_1013.py
new file mode 100644
index 000000000..41769a5db
--- /dev/null
+++ b/submissions/migrations/0046_auto_20181130_1013.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-11-30 09:13
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+def populate_explicit_resubmission_links(apps, schema_editor):
+    Submission = apps.get_model('submissions', 'Submission')
+
+    for resubmission in Submission.objects.filter(preprint__vn_nr__gt=1):
+        resub_of = Submission.objects.filter(
+            preprint__identifier_wo_vn_nr=resubmission.preprint.identifier_wo_vn_nr).order_by(
+            '-preprint__vn_nr').exclude(id=resubmission.id).first()
+        Submission.objects.filter(id=resubmission.id).update(is_resubmission_of=resub_of)
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('submissions', '0045_submission_is_resubmission_of'),
+    ]
+
+    operations = [
+        migrations.RunPython(populate_explicit_resubmission_links, reverse_code=migrations.RunPython.noop),
+    ]
-- 
GitLab