From 536be5212f93292a2f66dd6b56254ac98a5e95db Mon Sep 17 00:00:00 2001
From: Jorran de Wit <jorrandewit@outlook.com>
Date: Thu, 27 Sep 2018 20:56:30 +0200
Subject: [PATCH] Add data migrations

---
 .../migrations/0044_auto_20180927_2050.py     | 24 ++++++++++++++
 .../migrations/0045_auto_20180927_2055.py     | 31 +++++++++++++++++++
 journals/models.py                            |  2 +-
 3 files changed, 56 insertions(+), 1 deletion(-)
 create mode 100644 journals/migrations/0044_auto_20180927_2050.py
 create mode 100644 journals/migrations/0045_auto_20180927_2055.py

diff --git a/journals/migrations/0044_auto_20180927_2050.py b/journals/migrations/0044_auto_20180927_2050.py
new file mode 100644
index 000000000..480657815
--- /dev/null
+++ b/journals/migrations/0044_auto_20180927_2050.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-27 18:50
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+def update_issue_slugs(apps, schema_editor):
+    """Fill all slug fields for existing Issue instances."""
+    Issue = apps.get_model('journals', 'Issue')
+
+    for issue in Issue.objects.all():
+        Issue.objects.filter(id=issue.id).update(slug=issue.number)
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('journals', '0043_auto_20180927_2014'),
+    ]
+
+    operations = [
+        migrations.RunPython(update_issue_slugs),
+    ]
diff --git a/journals/migrations/0045_auto_20180927_2055.py b/journals/migrations/0045_auto_20180927_2055.py
new file mode 100644
index 000000000..75588da9e
--- /dev/null
+++ b/journals/migrations/0045_auto_20180927_2055.py
@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2018-09-27 18:55
+from __future__ import unicode_literals
+
+import django.core.validators
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('journals', '0044_auto_20180927_2050'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='issue',
+            name='doi_label',
+            field=models.CharField(db_index=True, max_length=200, unique=True, validators=[django.core.validators.RegexValidator('^[a-zA-Z]+.\\w+(.[0-9]+)?$', 'Only valid DOI expressions are allowed ([a-zA-Z]+.\\w+(.[0-9]+)?)')]),
+        ),
+        migrations.AlterField(
+            model_name='issue',
+            name='slug',
+            field=models.SlugField(),
+        ),
+        migrations.AlterField(
+            model_name='publication',
+            name='doi_label',
+            field=models.CharField(db_index=True, max_length=200, unique=True, validators=[django.core.validators.RegexValidator('^(SciPostPhysProc|SciPostPhysSel|SciPostPhysLectNotes|SciPostPhys)(.\\w+(.[0-9]+(.[0-9]{3,})?)?)?$', 'Only valid DOI expressions are allowed: `[a-zA-Z]+(.\\w+(.[0-9]+(.[0-9]{3,})?)?)?`')]),
+        ),
+    ]
diff --git a/journals/models.py b/journals/models.py
index 07df5dcb0..9da8242ea 100644
--- a/journals/models.py
+++ b/journals/models.py
@@ -256,7 +256,7 @@ class Issue(models.Model):
         'journals.Volume', on_delete=models.CASCADE, null=True, blank=True,
         help_text='Assign either an Volume or Journal to the Issue')
     number = models.PositiveSmallIntegerField()
-    # slug = models.SlugField(null=True)
+    slug = models.SlugField()
     start_date = models.DateField(default=timezone.now)
     until_date = models.DateField(default=timezone.now)
     status = models.CharField(max_length=20, choices=ISSUE_STATUSES, default=STATUS_PUBLISHED)
-- 
GitLab