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

refacotr on filtering/ordering by visits - it's more flexible (not limited to max 8 visits)

parent 5db68857
No related branches found
No related tags found
1 merge request!100Test coverage unit tests
Pipeline #
......@@ -78,27 +78,18 @@ def get_subjects_order(subjects_to_be_ordered, order_column, order_direction):
result = subjects_to_be_ordered.order_by(order_direction + 'id')
elif order_column == "date_born":
result = subjects_to_be_ordered.order_by(order_direction + 'subject__date_born')
elif order_column == "visit_1":
result = order_by_visit(subjects_to_be_ordered, order_direction, 1)
elif order_column == "visit_2":
result = order_by_visit(subjects_to_be_ordered, order_direction, 2)
elif order_column == "visit_3":
result = order_by_visit(subjects_to_be_ordered, order_direction, 3)
elif order_column == "visit_4":
result = order_by_visit(subjects_to_be_ordered, order_direction, 4)
elif order_column == "visit_5":
result = order_by_visit(subjects_to_be_ordered, order_direction, 5)
elif order_column == "visit_6":
result = order_by_visit(subjects_to_be_ordered, order_direction, 6)
elif order_column == "visit_7":
result = order_by_visit(subjects_to_be_ordered, order_direction, 7)
elif order_column == "visit_8":
result = order_by_visit(subjects_to_be_ordered, order_direction, 8)
elif str(order_column).startswith("visit_"):
visit_number = get_visit_number_from_visit_x_string(order_column)
result = order_by_visit(subjects_to_be_ordered, order_direction, visit_number)
else:
logger.warn("Unknown sort column: " + str(order_column))
return result
def get_visit_number_from_visit_x_string(order_column):
return int(str(order_column).split("_")[1])
def filter_by_visit(result, visit_number, visit_type):
# we need to give custom names for filtering params that contain visit_number in it
# because we might want to filter by few visits and they shouldn't collide
......@@ -185,22 +176,9 @@ def get_subjects_filtered(subjects_to_be_filtered, filters):
result = result.filter(default_location=value)
elif column == "type":
result = result.filter(type=value)
elif column == "visit_1":
result = filter_by_visit(result, 1, value)
elif column == "visit_2":
result = filter_by_visit(result, 2, value)
elif column == "visit_3":
result = filter_by_visit(result, 3, value)
elif column == "visit_4":
result = filter_by_visit(result, 4, value)
elif column == "visit_5":
result = filter_by_visit(result, 5, value)
elif column == "visit_6":
result = filter_by_visit(result, 6, value)
elif column == "visit_7":
result = filter_by_visit(result, 7, value)
elif column == "visit_8":
result = filter_by_visit(result, 8, value)
elif str(column).startswith("visit_"):
visit_number = get_visit_number_from_visit_x_string(column)
result = filter_by_visit(result, visit_number, value)
elif column == "":
pass
else:
......@@ -277,12 +255,6 @@ def get_yes_no(val):
return "NO"
def serialize_subject_visit(visit):
status = "---"
appointments = visit.appointment_set.filter()
pass
def serialize_subject(study_subject):
location = ""
if study_subject.default_location is not None:
......
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