From 2346a660db4c47ad1ef8b3db08543c9421040617 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Fri, 20 Mar 2020 11:05:58 +0100 Subject: [PATCH] next of keen field add in subject + bran_donation field added in study --- smash/web/api_views/subject.py | 24 ++++++++ smash/web/forms/study_subject_forms.py | 1 + .../web/migrations/0146_auto_20200320_0932.py | 55 +++++++++++++++++++ smash/web/models/study_columns.py | 11 ++-- smash/web/models/study_subject.py | 5 ++ smash/web/models/subject.py | 15 +++++ smash/web/models/subject_columns.py | 15 +++++ 7 files changed, 122 insertions(+), 4 deletions(-) create mode 100644 smash/web/migrations/0146_auto_20200320_0932.py diff --git a/smash/web/api_views/subject.py b/smash/web/api_views/subject.py index fb81d962..c31d1390 100644 --- a/smash/web/api_views/subject.py +++ b/smash/web/api_views/subject.py @@ -70,6 +70,10 @@ def get_subject_columns(request, subject_list_type): add_column(result, "Resigned", "resigned", study_subject_columns, "yes_no_filter", study.columns) add_column(result, "Endpoint Reached", "endpoint_reached", study_subject_columns, "yes_no_filter", study.columns) add_column(result, "Postponed", "postponed", study_subject_columns, "yes_no_filter", study.columns) + add_column(result, "Next of keen", "next_of_keen_name", subject_columns, "string_filter") + add_column(result, "Next of keen phone", "next_of_keen_phone", subject_columns, "string_filter") + add_column(result, "Next of keen address", "next_of_keen_address", subject_columns, "string_filter") + add_column(result, "Brain donation agreement", "brain_donation_agreement", study_subject_columns, "yes_no_filter", study.columns) add_column(result, "Excluded", "excluded", study_subject_columns, "yes_no_filter", study.columns) add_column(result, "Info sent", "information_sent", study_subject_columns, "yes_no_filter", study.columns) add_column(result, "Type", "type", study_subject_columns, "type_filter", study.columns) @@ -113,6 +117,12 @@ def get_subjects_order(subjects_to_be_ordered, order_column, order_direction, co result = subjects_to_be_ordered.order_by(order_direction + 'subject__last_name') elif order_column == "address": result = subjects_to_be_ordered.order_by(order_direction + 'subject__address') + elif order_column == "next_of_keen_name": + result = subjects_to_be_ordered.order_by(order_direction + 'subject__next_of_keen_name') + elif order_column == "next_of_keen_phone": + result = subjects_to_be_ordered.order_by(order_direction + 'subject__next_of_keen_phone') + elif order_column == "next_of_keen_address": + result = subjects_to_be_ordered.order_by(order_direction + 'subject__next_of_keen_address') elif order_column == "nd_number": result = subjects_to_be_ordered.order_by(order_direction + 'nd_number') elif order_column == "referral": @@ -144,6 +154,8 @@ def get_subjects_order(subjects_to_be_ordered, order_column, order_direction, co result = subjects_to_be_ordered.order_by(order_direction + 'subject__social_security_number') elif order_column == "postponed": result = subjects_to_be_ordered.order_by(order_direction + 'postponed') + elif order_column == "brain_donation_agreement": + result = subjects_to_be_ordered.order_by(order_direction + 'brain_donation_agreement') elif order_column == "excluded": result = subjects_to_be_ordered.order_by(order_direction + 'excluded') elif order_column == "type": @@ -242,6 +254,12 @@ def get_subjects_filtered(subjects_to_be_filtered, filters): result = result.filter(subject__last_name__icontains=value) elif column == "address": result = result.filter(subject__address__icontains=value) + elif column == "next_of_keen_name": + result = result.filter(subject__next_of_keen_name__icontains=value) + elif column == "next_of_keen_phone": + result = result.filter(subject__next_of_keen_phone__icontains=value) + elif column == "next_of_keen_address": + result = result.filter(subject__next_of_keen_address__icontains=value) elif column == "nd_number": result = result.filter(nd_number__icontains=value) elif column == "referral": @@ -254,6 +272,8 @@ def get_subjects_filtered(subjects_to_be_filtered, filters): result = result.filter(resigned=(value == "true")) elif column == "endpoint_reached": result = result.filter(endpoint_reached=(value == "true")) + elif column == "brain_donation_agreement": + result = result.filter(brain_donation_agreement=(value == "true")) elif column == "postponed": result = result.filter(postponed=(value == "true")) elif column == "excluded": @@ -402,6 +422,9 @@ def serialize_subject(study_subject): "first_name": study_subject.subject.first_name, "last_name": study_subject.subject.last_name, "address": study_subject.subject.pretty_address(), + "next_of_keen_name": study_subject.subject.next_of_keen_name, + "next_of_keen_phone": study_subject.subject.next_of_keen_phone, + "next_of_keen_address": study_subject.subject.next_of_keen_address, "date_born": study_subject.subject.date_born, "datetime_contact_reminder": contact_reminder, "last_contact_attempt": last_contact_attempt_string, @@ -414,6 +437,7 @@ def serialize_subject(study_subject): "resigned": bool_to_yes_no(study_subject.resigned), "endpoint_reached": bool_to_yes_no(study_subject.endpoint_reached), "postponed": bool_to_yes_no(study_subject.postponed), + "brain_donation_agreement": bool_to_yes_no(study_subject.brain_donation_agreement), "excluded": bool_to_yes_no(study_subject.excluded), "information_sent": bool_to_yes_no(study_subject.information_sent), "health_partner_first_name": health_partner_first_name, diff --git a/smash/web/forms/study_subject_forms.py b/smash/web/forms/study_subject_forms.py index ea2849fc..2bc88078 100644 --- a/smash/web/forms/study_subject_forms.py +++ b/smash/web/forms/study_subject_forms.py @@ -161,6 +161,7 @@ def prepare_study_subject_fields(fields, study): prepare_field(fields, study.columns, 'nd_number') prepare_field(fields, study.columns, 'datetime_contact_reminder') prepare_field(fields, study.columns, 'postponed') + prepare_field(fields, study.columns, 'brain_donation_agreement') prepare_field(fields, study.columns, 'flying_team') prepare_field(fields, study.columns, 'mpower_id') prepare_field(fields, study.columns, 'comments') diff --git a/smash/web/migrations/0146_auto_20200320_0932.py b/smash/web/migrations/0146_auto_20200320_0932.py new file mode 100644 index 00000000..93b2487b --- /dev/null +++ b/smash/web/migrations/0146_auto_20200320_0932.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2020-03-20 09:32 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('web', '0145_add_permissions_to_existing_workers'), + ] + + operations = [ + migrations.AddField( + model_name='studycolumns', + name='brain_donation_agreement', + field=models.BooleanField(default=False, verbose_name=b'Brain donation agreement'), + ), + migrations.AddField( + model_name='studysubject', + name='brain_donation_agreement', + field=models.BooleanField(default=False, verbose_name=b'Brain donation agreement'), + ), + migrations.AddField( + model_name='subject', + name='next_of_keen_address', + field=models.TextField(blank=True, max_length=2000, verbose_name=b'Next of keen address'), + ), + migrations.AddField( + model_name='subject', + name='next_of_keen_name', + field=models.CharField(blank=True, max_length=50, verbose_name=b'Next of keen'), + ), + migrations.AddField( + model_name='subject', + name='next_of_keen_phone', + field=models.CharField(blank=True, max_length=50, verbose_name=b'Next of keen phone'), + ), + migrations.AddField( + model_name='subjectcolumns', + name='next_of_keen_address', + field=models.BooleanField(default=False, max_length=1, verbose_name=b'Next of keen address'), + ), + migrations.AddField( + model_name='subjectcolumns', + name='next_of_keen_name', + field=models.BooleanField(default=False, max_length=1, verbose_name=b'Next of keen'), + ), + migrations.AddField( + model_name='subjectcolumns', + name='next_of_keen_phone', + field=models.BooleanField(default=False, max_length=1, verbose_name=b'Next of keen phone'), + ), + ] diff --git a/smash/web/models/study_columns.py b/smash/web/models/study_columns.py index a1b34570..7d20b391 100644 --- a/smash/web/models/study_columns.py +++ b/smash/web/models/study_columns.py @@ -1,8 +1,6 @@ # coding=utf-8 from django.db import models -from web.models.constants import BOOL_CHOICES - class StudyColumns(models.Model): class Meta: @@ -81,7 +79,7 @@ class StudyColumns(models.Model): excluded = models.BooleanField(default=False, verbose_name='Excluded') endpoint_reached = models.BooleanField(default=True, verbose_name='Endpoint reached') - + resign_reason = models.BooleanField(default=True, verbose_name='Endpoint reached comments') referral_letter = models.BooleanField( @@ -117,4 +115,9 @@ class StudyColumns(models.Model): vouchers = models.BooleanField( default=False, verbose_name='Vouchers', - ) \ No newline at end of file + ) + + brain_donation_agreement = models.BooleanField( + default=False, + verbose_name='Brain donation agreement', + ) diff --git a/smash/web/models/study_subject.py b/smash/web/models/study_subject.py index a4d21778..f08d450d 100644 --- a/smash/web/models/study_subject.py +++ b/smash/web/models/study_subject.py @@ -164,6 +164,11 @@ class StudySubject(models.Model): verbose_name='PD in family', default=None, ) + brain_donation_agreement = models.BooleanField( + default=False, + verbose_name='Brain donation agreement', + ) + resigned = models.BooleanField( verbose_name='Resigned', default=False, diff --git a/smash/web/models/subject.py b/smash/web/models/subject.py index 0d0eb57f..fa9f067d 100644 --- a/smash/web/models/subject.py +++ b/smash/web/models/subject.py @@ -101,6 +101,21 @@ class Subject(models.Model): verbose_name='Country' ) + next_of_keen_name = models.CharField(max_length=50, + blank=True, + verbose_name='Next of keen' + ) + + next_of_keen_phone = models.CharField(max_length=50, + blank=True, + verbose_name='Next of keen phone' + ) + + next_of_keen_address = models.TextField(max_length=2000, + blank=True, + verbose_name='Next of keen address' + ) + dead = models.BooleanField( verbose_name='Deceased', default=False, diff --git a/smash/web/models/subject_columns.py b/smash/web/models/subject_columns.py index d83847c7..04a1869b 100644 --- a/smash/web/models/subject_columns.py +++ b/smash/web/models/subject_columns.py @@ -83,3 +83,18 @@ class SubjectColumns(models.Model): default=True, verbose_name='Deceased', ) + + next_of_keen_name = models.BooleanField(max_length=1, + default=False, + verbose_name='Next of keen', + ) + + next_of_keen_phone = models.BooleanField(max_length=1, + default=False, + verbose_name='Next of keen phone', + ) + + next_of_keen_address = models.BooleanField(max_length=1, + default=False, + verbose_name='Next of keen address', + ) -- GitLab