diff --git a/smash/web/api_views/serialization_utils.py b/smash/web/api_views/serialization_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..a780e4e015b20764ff3f15097d521209871694fb --- /dev/null +++ b/smash/web/api_views/serialization_utils.py @@ -0,0 +1,10 @@ +import logging + +logger = logging.getLogger(__name__) + + +def bool_to_yes_no(val): + if val: + return "YES" + else: + return "NO" diff --git a/smash/web/api_views/subject.py b/smash/web/api_views/subject.py index ab558c01959f748304588899bebd91204d84ced0..f05f17d00d973fa54dd07ce2900ece744b8f374c 100644 --- a/smash/web/api_views/subject.py +++ b/smash/web/api_views/subject.py @@ -5,6 +5,7 @@ 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 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, \ @@ -321,13 +322,6 @@ def types(request): }) -def get_yes_no(val): - if val: - return "YES" - else: - return "NO" - - def serialize_subject(study_subject): location = "" if study_subject.default_location is not None: @@ -369,7 +363,7 @@ def serialize_subject(study_subject): 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: " + get_yes_no( + '%Y-%m-%d %H:%M') + "<br/>" + str(last_contact_attempt.worker) + "<br/> Success: " + bool_to_yes_no( last_contact_attempt.success) + "<br/>" + last_contact_attempt.comment else: @@ -385,10 +379,10 @@ def serialize_subject(study_subject): "referral": study_subject.referral, "default_location": location, "flying_team": flying_team, - "dead": get_yes_no(study_subject.subject.dead), - "resigned": get_yes_no(study_subject.resigned), - "postponed": get_yes_no(study_subject.postponed), - "information_sent": get_yes_no(study_subject.information_sent), + "dead": bool_to_yes_no(study_subject.subject.dead), + "resigned": bool_to_yes_no(study_subject.resigned), + "postponed": bool_to_yes_no(study_subject.postponed), + "information_sent": bool_to_yes_no(study_subject.information_sent), "type": study_subject.get_type_display(), "id": study_subject.id, "visits": serialized_visits, diff --git a/smash/web/api_views/visit.py b/smash/web/api_views/visit.py index e426440ad4abdb5615fb9a99f30f2f3902aed725..c2b024c9979360a99eee8eac44ab6e3683a56f29 100644 --- a/smash/web/api_views/visit.py +++ b/smash/web/api_views/visit.py @@ -3,6 +3,7 @@ import logging from django.contrib.auth.decorators import login_required from django.http import JsonResponse +from web.api_views.serialization_utils import bool_to_yes_no from web.models import SubjectColumns from web.models import Visit, Study, VisitColumns, StudyVisitList from web.models.constants import GLOBAL_STUDY_ID @@ -183,8 +184,8 @@ def serialize_visit(visit): "last_name": visit.subject.subject.last_name, "datetime_begin": datetime_begin, "datetime_end": datetime_end, - "is_finished": visit.is_finished, - "post_mail_sent": visit.post_mail_sent, + "is_finished": bool_to_yes_no(visit.is_finished), + "post_mail_sent": bool_to_yes_no(visit.post_mail_sent), "visit_number": visit.visit_number, "id": visit.id, }