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

common serialize date methods extracted

parent fda6f41e
No related branches found
No related tags found
1 merge request!107Resolve "exceeded visits list & unfinished visits list"
......@@ -24,6 +24,22 @@ def location_to_str(location):
return result
def serialize_date(date):
if date is not None:
result = date.strftime('%Y-%m-%d')
else:
result = ""
return result
def serialize_datetime(date):
if date is not None:
result = date.strftime('%Y-%m-%d %H:%M')
else:
result = ""
return result
def add_column(result, name, field_name, column_list, param, columns_used_in_study=None, visible_param=None,
sortable=True):
add = True
......
......@@ -5,7 +5,8 @@ from django.db.models import Count, Case, When, Min, Max
from django.db.models import Q
from django.http import JsonResponse
from web.api_views.serialization_utils import bool_to_yes_no, flying_team_to_str, location_to_str, add_column
from web.api_views.serialization_utils import bool_to_yes_no, flying_team_to_str, location_to_str, add_column, \
serialize_date, serialize_datetime
from web.models import StudySubject, Visit, Appointment, Subject, SubjectColumns, StudyColumns, Study, ContactAttempt
from web.models.constants import SUBJECT_TYPE_CHOICES, GLOBAL_STUDY_ID
from web.models.study_subject_list import SUBJECT_LIST_GENERIC, SUBJECT_LIST_NO_VISIT, SUBJECT_LIST_REQUIRE_CONTACT, \
......@@ -330,17 +331,15 @@ def serialize_subject(study_subject):
status = "UPCOMING"
serialized_visits.append({
"status": status,
"datetime_start": visit.datetime_begin.strftime('%Y-%m-%d'),
"datetime_end": visit.datetime_end.strftime('%Y-%m-%d'),
"datetime_start": serialize_date(visit.datetime_begin),
"datetime_end": serialize_date(visit.datetime_end),
})
contact_reminder = study_subject.datetime_contact_reminder
if contact_reminder is not None:
contact_reminder = contact_reminder.strftime('%Y-%m-%d %H:%M')
contact_reminder = serialize_datetime(study_subject.datetime_contact_reminder)
contact_attempts = ContactAttempt.objects.filter(subject=study_subject).order_by("-datetime_when")
if len(contact_attempts) > 0:
last_contact_attempt = contact_attempts[0]
last_contact_attempt_string = last_contact_attempt.datetime_when.strftime(
'%Y-%m-%d %H:%M') + "<br/>" + str(last_contact_attempt.worker) + "<br/> Success: " + bool_to_yes_no(
last_contact_attempt_string = serialize_datetime(last_contact_attempt.datetime_when) + "<br/>" + str(
last_contact_attempt.worker) + "<br/> Success: " + bool_to_yes_no(
last_contact_attempt.success) + "<br/>" + last_contact_attempt.comment
else:
......
......@@ -4,7 +4,8 @@ from django.contrib.auth.decorators import login_required
from django.db.models import Q
from django.http import JsonResponse
from web.api_views.serialization_utils import bool_to_yes_no, flying_team_to_str, location_to_str, add_column
from web.api_views.serialization_utils import bool_to_yes_no, flying_team_to_str, location_to_str, add_column, \
serialize_date
from web.models import AppointmentType, Appointment
from web.models import SubjectColumns
from web.models import Visit, Study, VisitColumns, StudyVisitList, StudyColumns
......@@ -221,9 +222,6 @@ def appointment_types_to_str(appointment_types):
def serialize_visit(visit):
datetime_begin = serialize_date(visit.datetime_begin)
datetime_end = serialize_date(visit.datetime_end)
appointment_types = visit.appointment_types.all()
appointment_types_in_progress = AppointmentType.objects.filter(Q(appointmenttypelink__appointment__visit=visit) & Q(
appointmenttypelink__appointment__status=Appointment.APPOINTMENT_STATUS_SCHEDULED)).distinct().all()
......@@ -239,8 +237,8 @@ def serialize_visit(visit):
result = {
"first_name": visit.subject.subject.first_name,
"last_name": visit.subject.subject.last_name,
"datetime_begin": datetime_begin,
"datetime_end": datetime_end,
"datetime_begin": serialize_date(visit.datetime_begin),
"datetime_end": serialize_date(visit.datetime_end),
"flying_team": flying_team_to_str(visit.subject.flying_team),
"default_location": location_to_str(visit.subject.default_location),
"is_finished": bool_to_yes_no(visit.is_finished),
......@@ -254,11 +252,3 @@ def serialize_visit(visit):
}
return result
def serialize_date(date):
if date is not None:
result = date.strftime('%Y-%m-%d')
else:
result = ""
return result
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