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

ordering by visit dates added

parent be333491
No related branches found
No related tags found
1 merge request!85subject list contain list of visits
......@@ -50,6 +50,12 @@ def get_subjects(request, type):
raise TypeError("Unknown query type: " + type)
def order_by_visit(subjects_to_be_ordered, order_direction, visit_number):
return subjects_to_be_ordered.annotate(
sort_visit_date=Min(Case(When(visit__visit_number=visit_number, then='visit__datetime_begin')))).order_by(
order_direction + 'sort_visit_date')
def get_subjects_order(subjects_to_be_ordered, order_column, order_direction):
result = subjects_to_be_ordered
if order_direction == "asc":
......@@ -76,14 +82,22 @@ def get_subjects_order(subjects_to_be_ordered, order_column, order_direction):
result = subjects_to_be_ordered.order_by(order_direction + 'postponed')
elif order_column == "type":
result = subjects_to_be_ordered.order_by(order_direction + 'type')
elif order_column == "visit_0":
result = subjects_to_be_ordered.annotate(visit_0=Min('visit__datetime_begin')).order_by(
order_direction + 'visit_0')
elif order_column == "visit_1":
result = subjects_to_be_ordered.annotate(visit_0=Min('visit__datetime_begin'))
result = result.filter(visit__datetime_begin__gt=Min('visit__datetime_begin'))
result = result.annotate(visit_1=Min('visit__datetime_begin')).order_by(order_direction + 'visit_1')
logger.info(result.query)
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)
return result
......@@ -197,7 +211,7 @@ def serialize_subject(subject):
location = ""
if subject.default_location is not None:
location = subject.default_location.name
visits = Visit.objects.filter(subject=subject)
visits = Visit.objects.filter(subject=subject).order_by('visit_number')
serialized_visits = []
for visit in visits:
if visit.datetime_begin < get_today_midnight_date():
......
......@@ -154,7 +154,7 @@
color = "pink";
text = "MISSED";
} else if (visit.status === "UPCOMING") {
color = "blue";
color = "#00ffff";
text = "UPCOMING";
} else if (visit.status === "EXCEEDED") {
color = "orange";
......@@ -189,14 +189,14 @@
{"data": "postponed"},
{"data": "information_sent"},
{"data": "type"},
{"data": "visit_0"},
{"data": "visit_1"},
{"data": null},
{"data": null},
{"data": null},
{"data": null},
{"data": null},
{"data": null},
{"data": "visit_2"},
{"data": "visit_3"},
{"data": "visit_4"},
{"data": "visit_5"},
{"data": "visit_6"},
{"data": "visit_7"},
{"data": "visit_8"},
{"data": null}
],
columnDefs: [{
......
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