From a18c3e66834311f5c886f477cbf3310cab3cb9b8 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 17 Jul 2018 15:59:15 +0200 Subject: [PATCH] visit is marked as exceeded when time of the visit is exceeded and there are no scheduled appointments, when there are scheduled appointments it's marked as in progress --- smash/web/api_views/subject.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/smash/web/api_views/subject.py b/smash/web/api_views/subject.py index a30d4c19..f5eed511 100644 --- a/smash/web/api_views/subject.py +++ b/smash/web/api_views/subject.py @@ -199,11 +199,11 @@ def filter_by_visit(result, visit_number, visit_type): elif visit_type == "EXCEED": result = result.filter(**{datetime_begin_filter + "__lt": get_today_midnight_date()}). \ filter(**{is_finished_filter: 0}). \ + filter(**{scheduled_appointments_filter: 0}). \ filter(**{datetime_end_filter + "__lt": get_today_midnight_date()}) elif visit_type == "IN_PROGRESS": result = result.filter(**{datetime_begin_filter + "__lt": get_today_midnight_date()}). \ filter(**{is_finished_filter: 0}). \ - filter(**{datetime_end_filter + "__gt": get_today_midnight_date()}). \ filter(**{scheduled_appointments_filter + "__gt": 0}) elif visit_type == "SHOULD_BE_IN_PROGRESS": result = result.filter(**{datetime_begin_filter + "__lt": get_today_midnight_date()}). \ @@ -330,7 +330,12 @@ def serialize_subject(study_subject): else: status = "MISSED" elif visit.datetime_end < get_today_midnight_date(): - status = "EXCEEDED" + scheduled_appointments_count = visit.appointment_set.filter( + status=Appointment.APPOINTMENT_STATUS_SCHEDULED).count() + if scheduled_appointments_count > 0: + status = "IN_PROGRESS" + else: + status = "EXCEEDED" else: scheduled_appointments_count = visit.appointment_set.filter( status=Appointment.APPOINTMENT_STATUS_SCHEDULED).count() -- GitLab