Skip to content
Snippets Groups Projects
Commit f6656bf1 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

Merge branch '318-next-of-keen' into 'master'

Resolve "next of keen"

Closes #318

See merge request NCER-PD/scheduling-system!230
parents 0e103b29 ba8c6767
No related branches found
No related tags found
1 merge request!230Resolve "next of keen"
Pipeline #24060 passed
......@@ -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,
......
......@@ -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')
......
# -*- 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'),
),
]
# 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',
)
......@@ -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,
......
......@@ -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,
......
......@@ -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',
)
......@@ -204,6 +204,11 @@
$("#confirm-dead-resigned-mark-dialog").modal("show");
return false;
}
var brainDonation = $("#id_study_subject-brain_donation_agreement").is(":checked");
if (brainDonation && ($("#id_subject-next_of_keen_phone").val() === '' || $("#id_subject-next_of_keen_address").val() === '' || $("#id_subject-next_of_keen_name").val() === '')) {
alert("Next of keen data must be entered when brain donation agreement is in place");
return false;
}
});
$("#confirm-save").click(function () {
confirmed = true;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment