From 702779f25b621d329bc12ca8303251a70d5b8f5e Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 11 Jun 2018 12:00:42 +0200
Subject: [PATCH] voucher has information about person that issued it

---
 smash/web/forms/voucher_forms.py              |   1 +
 .../web/migrations/0114_auto_20180611_0950.py |  17 +++
 .../web/migrations/0115_auto_20180611_0950.py | 137 ++++++++++++++++++
 smash/web/models/voucher.py                   |   2 +
 smash/web/views/voucher.py                    |  14 +-
 5 files changed, 168 insertions(+), 3 deletions(-)
 create mode 100644 smash/web/migrations/0114_auto_20180611_0950.py
 create mode 100644 smash/web/migrations/0115_auto_20180611_0950.py

diff --git a/smash/web/forms/voucher_forms.py b/smash/web/forms/voucher_forms.py
index 7768920a..67dabe3c 100644
--- a/smash/web/forms/voucher_forms.py
+++ b/smash/web/forms/voucher_forms.py
@@ -47,6 +47,7 @@ class VoucherForm(ModelForm):
 
         self.fields['number'].widget.attrs['readonly'] = True
         self.fields['number'].required = False
+        self.fields['issue_worker'].widget.attrs['readonly'] = True
 
         self.fields['issue_date'].widget.attrs['readonly'] = True
         self.fields['issue_date'].required = False
diff --git a/smash/web/migrations/0114_auto_20180611_0950.py b/smash/web/migrations/0114_auto_20180611_0950.py
new file mode 100644
index 00000000..510157da
--- /dev/null
+++ b/smash/web/migrations/0114_auto_20180611_0950.py
@@ -0,0 +1,17 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.7 on 2018-06-11 09:50
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ('web', '0113_auto_20180608_1258'),
+    ]
+
+    operations = [
+        migrations.RunSQL('delete from web_voucherpartnersession;'),
+        migrations.RunSQL('delete from web_voucher;'),
+    ]
diff --git a/smash/web/migrations/0115_auto_20180611_0950.py b/smash/web/migrations/0115_auto_20180611_0950.py
new file mode 100644
index 00000000..62cb7874
--- /dev/null
+++ b/smash/web/migrations/0115_auto_20180611_0950.py
@@ -0,0 +1,137 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.10.7 on 2018-06-11 09:50
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ('web', '0114_auto_20180611_0950'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='voucher',
+            name='issue_worker',
+            field=models.ForeignKey(default=0, on_delete=django.db.models.deletion.CASCADE,
+                                    related_name='issued_vouchers', to='web.Worker', verbose_name=b'Issued by'),
+            preserve_default=False,
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='comments',
+            field=models.BooleanField(default=True, verbose_name=b'Comments'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='datetime_contact_reminder',
+            field=models.BooleanField(default=True, verbose_name=b'Please make a contact on'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='default_location',
+            field=models.BooleanField(default=True, verbose_name=b'Default appointment location'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='diagnosis',
+            field=models.BooleanField(default=True, verbose_name=b'Diagnosis'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='flying_team',
+            field=models.BooleanField(default=True, verbose_name=b'Default flying team location (if applicable)'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='health_partner',
+            field=models.BooleanField(default=False, verbose_name=b'Health partner'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='health_partner_feedback_agreement',
+            field=models.BooleanField(default=False, verbose_name=b'Agrees to give information to referral'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='information_sent',
+            field=models.BooleanField(default=True, verbose_name=b'Information sent'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='mpower_id',
+            field=models.BooleanField(default=True, verbose_name=b'MPower ID'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='nd_number',
+            field=models.BooleanField(default=True, verbose_name=b'ND number'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='pd_in_family',
+            field=models.BooleanField(default=True, verbose_name=b'PD in family'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='postponed',
+            field=models.BooleanField(default=True, verbose_name=b'Postponed'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='previously_in_study',
+            field=models.BooleanField(default=False, verbose_name=b'Previously in PDP study'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='referral',
+            field=models.BooleanField(default=True, verbose_name=b'Referred by'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='referral_letter',
+            field=models.BooleanField(default=False, verbose_name=b'Referral letter'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='resign_reason',
+            field=models.BooleanField(default=True, verbose_name=b'Resign reason'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='resigned',
+            field=models.BooleanField(default=True, verbose_name=b'Resigned'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='screening',
+            field=models.BooleanField(default=False, verbose_name=b'Screening'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='screening_number',
+            field=models.BooleanField(default=True, verbose_name=b'Screening number'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='type',
+            field=models.BooleanField(default=True, verbose_name=b'Type'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='voucher_types',
+            field=models.BooleanField(default=False, verbose_name=b'Voucher types'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='vouchers',
+            field=models.BooleanField(default=False, verbose_name=b'Vouchers'),
+        ),
+        migrations.AlterField(
+            model_name='studycolumns',
+            name='year_of_diagnosis',
+            field=models.BooleanField(default=True, verbose_name=b'Year of diagnosis (YYYY)'),
+        ),
+    ]
diff --git a/smash/web/models/voucher.py b/smash/web/models/voucher.py
index 7de7d714..2f47fae0 100644
--- a/smash/web/models/voucher.py
+++ b/smash/web/models/voucher.py
@@ -21,6 +21,8 @@ class Voucher(models.Model):
     issue_date = models.DateField(verbose_name='Issue date', null=False)
     expiry_date = models.DateField(verbose_name='Expiry date', null=False)
 
+    issue_worker = models.ForeignKey(Worker, verbose_name='Issued by', null=False, related_name='issued_vouchers')
+
     hours = models.IntegerField(
         verbose_name='Hours',
         default=0,
diff --git a/smash/web/views/voucher.py b/smash/web/views/voucher.py
index 53234277..d3284437 100644
--- a/smash/web/views/voucher.py
+++ b/smash/web/views/voucher.py
@@ -11,7 +11,7 @@ from django_cron import CronJobBase, Schedule
 
 from web.views.notifications import get_today_midnight_date
 from web.forms import VoucherForm
-from web.models import Voucher, StudySubject, MailTemplate
+from web.models import Voucher, StudySubject, MailTemplate, Worker
 from web.models.constants import GLOBAL_STUDY_ID, VOUCHER_STATUS_NEW, VOUCHER_STATUS_EXPIRED, CRON_JOB_TIMEOUT
 from . import WrappedView
 
@@ -36,6 +36,15 @@ class VoucherCreateView(CreateView, WrappedView):
     success_url = reverse_lazy('web.views.vouchers')
     success_message = "Voucher type created"
 
+    def get_initial(self):
+        worker = Worker.get_by_user(self.request.user)
+        worker_id = None
+        if worker is not None:
+            worker_id = worker.id
+        return {
+            'issue_worker': worker_id,
+        }
+
     def form_valid(self, form):
         form.instance.study_id = GLOBAL_STUDY_ID
         # noinspection PyUnresolvedReferences
@@ -70,8 +79,7 @@ class VoucherEditView(SuccessMessageMixin, UpdateView, WrappedView):
 
     def get_context_data(self, *args, **kwargs):
         context = super(VoucherEditView, self).get_context_data(*args, **kwargs)
-        context['mail_templates']= MailTemplate.get_voucher_mail_templates([])
-        print context
+        context['mail_templates'] = MailTemplate.get_voucher_mail_templates([])
         return context
 
 
-- 
GitLab