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

possibility to filter and sort by referral

parent cf5e92f8
No related branches found
No related tags found
1 merge request!106Resolve "Subjects without visit list"
......@@ -67,8 +67,9 @@ def get_subject_columns(request, subject_list_type):
add_column(result, "First name", "first_name", subject_columns, "string_filter")
add_column(result, "Last name", "last_name", subject_columns, "string_filter")
add_column(result, "Date of birth", "date_born", subject_columns, None)
add_column(result, "Contact on", "datetime_contact_reminder", study_subject_columns, None)
add_column(result, "Contact on", "datetime_contact_reminder", study_subject_columns, None, study.columns)
add_column(result, "Last contact attempt", "last_contact_attempt", study_subject_list, None)
add_column(result, "Referred by", "referral", study_subject_columns, "string_filter", study.columns)
add_column(result, "Location", "default_location", study_subject_columns, "location_filter", study.columns)
add_column(result, "Deceased", "dead", subject_columns, "yes_no_filter")
add_column(result, "Resigned", "resigned", study_subject_columns, "yes_no_filter", study.columns)
......@@ -118,6 +119,8 @@ def get_subjects_order(subjects_to_be_ordered, order_column, order_direction):
result = subjects_to_be_ordered.order_by(order_direction + 'subject__last_name')
elif order_column == "nd_number":
result = subjects_to_be_ordered.order_by(order_direction + 'nd_number')
elif order_column == "referral":
result = subjects_to_be_ordered.order_by(order_direction + 'referral')
elif order_column == "screening_number":
result = subjects_to_be_ordered.order_by(order_direction + 'screening_number')
elif order_column == "default_location":
......@@ -226,6 +229,8 @@ def get_subjects_filtered(subjects_to_be_filtered, filters):
result = result.filter(subject__last_name__icontains=value)
elif column == "nd_number":
result = result.filter(nd_number__icontains=value)
elif column == "referral":
result = result.filter(referral__icontains=value)
elif column == "screening_number":
result = result.filter(screening_number__icontains=value)
elif column == "dead":
......@@ -370,6 +375,7 @@ def serialize_subject(study_subject):
"last_contact_attempt": last_contact_attempt_string,
"nd_number": study_subject.nd_number,
"screening_number": study_subject.screening_number,
"referral": study_subject.referral,
"default_location": location,
"dead": get_yes_no(study_subject.subject.dead),
"resigned": get_yes_no(study_subject.resigned),
......
......@@ -229,6 +229,17 @@ class TestApi(TestCase):
self.check_subject_ordered("last_name", [subject, subject2])
def test_subjects_sort_referral(self):
subject = self.study_subject
subject.referral = "XXX"
subject.save()
subject2 = create_study_subject(2)
subject2.referral = "YYY"
subject2.save()
self.check_subject_ordered("referral", [subject, subject2])
def test_subjects_sort_dead(self):
study_subject = self.study_subject
study_subject.subject.dead = 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