From 93fb4ea31af3c428fe1c02ba30d4ac9e1c707825 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Tue, 28 Feb 2017 11:42:07 +0100
Subject: [PATCH] subject has fields dead, rejected and default appointment
 location

---
 smash/web/models.py                     | 52 ++++++++++++++-----------
 smash/web/templates/subjects/index.html |  4 +-
 smash/web/tests/test_SubjectAddForm.py  |  3 +-
 smash/web/tests/test_SubjectEditForm.py |  3 +-
 smash/web/tests/test_VisitAddForm.py    |  3 +-
 5 files changed, 38 insertions(+), 27 deletions(-)

diff --git a/smash/web/models.py b/smash/web/models.py
index 820bce3b..f6fd6fd6 100644
--- a/smash/web/models.py
+++ b/smash/web/models.py
@@ -34,36 +34,48 @@ class Subject(models.Model):
         (SEX_CHOICES_FEMALE,'Female'),
     )
 
-    STATUS_CHOICES_DEAD = 'DEA'
-    STATUS_CHOICES_REJECTED = 'REJ'
-    STATUS_CHOICES_NOT_CONTACTED = 'NCO'
-    STATUS_CHOICES_TEST_GROUP = 'TST'
-    STATUS_CHOICES_LEVEL_A = 'LEA'
-    STATUS_CHOICES_LEVEL_B = 'LEB'
-    STATUS_CHOICES_OPTED_OUT = 'OPT'
-
-    STATUS_CHOICES = (
-        (STATUS_CHOICES_NOT_CONTACTED, 'Not contacted'),
-        (STATUS_CHOICES_TEST_GROUP, 'Test group'),
-        (STATUS_CHOICES_LEVEL_A, 'Level A'),
-        (STATUS_CHOICES_LEVEL_B, 'Level B'),
-        (STATUS_CHOICES_OPTED_OUT, 'Opted out'),
-        (STATUS_CHOICES_REJECTED, 'Rejected'),
-        (STATUS_CHOICES_DEAD, 'Dead')
+    LOCATION_CHOICES_LIH = 'L'
+    LOCATION_CHOICES = (
+        (LOCATION_CHOICES_LIH,'LIH'),
+        ('P','PRC'),
+        ('F','FLYING TEAM'),
+    )
+
+    SUBJECT_TYPE_CHOICES_CONTROL = 'C'
+    SUBJECT_TYPE_CHOICES = (
+        (SUBJECT_TYPE_CHOICES_CONTROL,'CONTROL'),
+        ('P','PATIENT'),
     )
 
     def mark_as_dead(self):
-        self.status = self.STATUS_CHOICES_DEAD
+        self.dead = True
         self.save()
 
     def mark_as_rejected(self):
-        self.status = self.STATUS_CHOICES_REJECTED
+        self.resigned = True
         self.save()
 
     sex = models.CharField(max_length=1,
         choices=SEX_CHOICES,
         verbose_name='Sex'
     )
+    type = models.CharField(max_length=1,
+        choices=SUBJECT_TYPE_CHOICES,
+        verbose_name='Type'
+    )
+
+    dead = models.BooleanField(
+        verbose_name='Dead',
+        default= False
+    )
+    resigned = models.BooleanField(
+        verbose_name='Resigned',
+        default= False
+    )
+    default_appointment_location = models.CharField(max_length=1,
+        choices=LOCATION_CHOICES,
+        verbose_name='Default appointment location'
+    )
     first_name = models.CharField(max_length=50,
         verbose_name='First name'
     )
@@ -127,10 +139,6 @@ class Subject(models.Model):
 	    blank=True,
         verbose_name='MPower ID'
     )
-    status = models.CharField(max_length=3, choices=STATUS_CHOICES,
-        verbose_name='Status',
-        default='NCO'
-    )
     comments = models.CharField(max_length=2000,
 	    blank=True,
         verbose_name='Comments'
diff --git a/smash/web/templates/subjects/index.html b/smash/web/templates/subjects/index.html
index e2955a29..12e147ca 100644
--- a/smash/web/templates/subjects/index.html
+++ b/smash/web/templates/subjects/index.html
@@ -36,7 +36,7 @@
 				<th>Last name</th>
 				<th>Country</th>
 				<th data-sorter="false" data-filter="false">Languages</th>
-				<th class="filter-select filter-exact" data-placeholder="Select type">Type</th>
+				<th class="filter-select filter-exact" data-placeholder="Select location">Default location</th>
 				<th>Details</th>
 				<th>Edit</th>
         <th>Delete</th>
@@ -60,7 +60,7 @@
         {% endfor %}
         {% endautoescape %}
       </td>
-			<td>{{ subject.get_status_display }}</td>
+			<td>{{ subject.get_default_appointment_location_display }}</td>
 			<td><a href="{% url 'web.views.subject_details' subject.id %}" type="button" class="btn btn-block btn-default">Details</a></td>
 			<td><a href="{% url 'web.views.subject_edit' subject.id %}" type="button" class="btn btn-block btn-default">Edit</a></td>
       <td><a href="{% url 'web.views.subject_delete' subject.id %}" type="button" class="btn btn-block btn-default">Delete</a></td>
diff --git a/smash/web/tests/test_SubjectAddForm.py b/smash/web/tests/test_SubjectAddForm.py
index 41fdb320..92b032d0 100644
--- a/smash/web/tests/test_SubjectAddForm.py
+++ b/smash/web/tests/test_SubjectAddForm.py
@@ -6,8 +6,9 @@ class SubjectAddFormTests(TestCase):
     def setUp(self):
         self.sample_data = {'first_name': 'name',
             'last_name': 'name',
-            'status' : Subject.STATUS_CHOICES_NOT_CONTACTED,
             'sex' : Subject.SEX_CHOICES_MALE,
+            'type' : Subject.SUBJECT_TYPE_CHOICES_CONTROL,
+            'default_appointment_location' : Subject.LOCATION_CHOICES_LIH,
             'country' : 'Luxembourg'
         }
     def test_validation(self):
diff --git a/smash/web/tests/test_SubjectEditForm.py b/smash/web/tests/test_SubjectEditForm.py
index 604c3a0c..223b5595 100644
--- a/smash/web/tests/test_SubjectEditForm.py
+++ b/smash/web/tests/test_SubjectEditForm.py
@@ -8,8 +8,9 @@ class SubjectEditFormTests(TestCase):
     def setUp(self):
         self.sample_data = {'first_name': 'name',
             'last_name': 'name',
-            'status' : Subject.STATUS_CHOICES_NOT_CONTACTED,
             'sex' : Subject.SEX_CHOICES_MALE,
+            'type' : Subject.SUBJECT_TYPE_CHOICES_CONTROL,
+            'default_appointment_location' : Subject.LOCATION_CHOICES_LIH,
             'country' : 'Luxembourg',
             'screening_number' : '123',
             'nd_number' : 'nd_123'
diff --git a/smash/web/tests/test_VisitAddForm.py b/smash/web/tests/test_VisitAddForm.py
index 83ba6a8b..ae3c4baa 100644
--- a/smash/web/tests/test_VisitAddForm.py
+++ b/smash/web/tests/test_VisitAddForm.py
@@ -8,8 +8,9 @@ class SubjectAddFormTests(TestCase):
     def setUp(self):
         subject_data = {'first_name': 'name',
             'last_name': 'name',
-            'status' : Subject.STATUS_CHOICES_NOT_CONTACTED,
             'sex' : Subject.SEX_CHOICES_MALE,
+            'type' : Subject.SUBJECT_TYPE_CHOICES_CONTROL,
+            'default_appointment_location' : Subject.LOCATION_CHOICES_LIH,
             'country' : 'Luxembourg',
         }
         self.subject = SubjectAddForm(data=subject_data).save()
-- 
GitLab