From 60fcc7efa4225d05a6b912d39c2a952bf06966db Mon Sep 17 00:00:00 2001
From: Jorran de Wit <jorrandewit@outlook.com>
Date: Mon, 26 Jun 2017 21:52:16 +0200
Subject: [PATCH] Add Acceptance date to Submissions

---
 .../0047_submission_acceptance_date.py        | 34 +++++++++++++++++++
 submissions/models.py                         |  1 +
 .../_submission_summary_short.html            |  6 ++++
 submissions/views.py                          |  1 +
 4 files changed, 42 insertions(+)
 create mode 100644 submissions/migrations/0047_submission_acceptance_date.py

diff --git a/submissions/migrations/0047_submission_acceptance_date.py b/submissions/migrations/0047_submission_acceptance_date.py
new file mode 100644
index 000000000..ec64c3acd
--- /dev/null
+++ b/submissions/migrations/0047_submission_acceptance_date.py
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.3 on 2017-06-26 19:38
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+def do_nothing(apps, schema_editor):
+    pass
+
+
+def auto_fill_acceptance_dates(apps, schema_editor):
+    Publication = apps.get_model('journals', 'Publication')
+    for pub in Publication.objects.all():
+        submission = pub.accepted_submission
+        submission.acceptance_date = pub.acceptance_date
+        submission.save()
+    print("Auto-filled Acceptance dates for accepted Submissions")
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('submissions', '0046_auto_20170623_0806'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='submission',
+            name='acceptance_date',
+            field=models.DateField(blank=True, null=True, verbose_name='acceptance date'),
+        ),
+        migrations.RunPython(auto_fill_acceptance_dates, do_nothing),
+    ]
diff --git a/submissions/models.py b/submissions/models.py
index 17a364344..6aa62b532 100644
--- a/submissions/models.py
+++ b/submissions/models.py
@@ -78,6 +78,7 @@ class Submission(ArxivCallable, models.Model):
     # Metadata
     metadata = JSONField(default={}, blank=True, null=True)
     submission_date = models.DateField(verbose_name='submission date', default=datetime.date.today)
+    acceptance_date = models.DateField(verbose_name='acceptance date', null=True, blank=True)
     latest_activity = models.DateTimeField(auto_now=True)
 
     objects = SubmissionManager()
diff --git a/submissions/templates/submissions/_submission_summary_short.html b/submissions/templates/submissions/_submission_summary_short.html
index ca045cbf8..bf6915e89 100644
--- a/submissions/templates/submissions/_submission_summary_short.html
+++ b/submissions/templates/submissions/_submission_summary_short.html
@@ -24,6 +24,12 @@
             <a href="{{submission.arxiv_link}}" target="_blank">{{submission.arxiv_link}}</a>
         </td>
     </tr>
+    {% if submission.acceptance_date %}
+        <tr>
+            <td>Date accepted:</td>
+            <td>{{submission.acceptance_date}}</td>
+        </tr>
+    {% endif %}
     <tr>
         <td>Date submitted:</td>
         <td>{{submission.submission_date}}</td>
diff --git a/submissions/views.py b/submissions/views.py
index 6d5cdc5d5..071e117d8 100644
--- a/submissions/views.py
+++ b/submissions/views.py
@@ -1232,6 +1232,7 @@ def fix_College_decision(request, rec_id):
     if recommendation.recommendation in [1, 2, 3]:
         # Publish as Tier I, II or III
         recommendation.submission.status = 'accepted'
+        recommendation.submission.acceptance_date = datetime.date.today()
         # Create a ProductionStream object
         prodstream = ProductionStream(submission=recommendation.submission)
         prodstream.save()
-- 
GitLab