diff --git a/smash/web/forms/voucher_forms.py b/smash/web/forms/voucher_forms.py index 7768920a81e851f7cc00a4174f3c18b28eb48fb6..67dabe3c04ee6675ed6a721c71d9e1002d02798b 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 0000000000000000000000000000000000000000..510157daf86e456fad233b0ab7d32af5452baa9a --- /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 0000000000000000000000000000000000000000..62cb787471b843b8cb36ef0107f65e3e67956e27 --- /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 7de7d71443b2038e7af377f1a27868fda80dd33c..2f47fae06cd7c58e4c75424d0b768daa8d51aa2a 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 5323427791e0d480e0c4b485327d0d103e0d966d..d3284437be4279f414b30eebf7052877e0bfc742 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