From ed45ab3ccc61a76077a972a4e23d7ab75c37656c Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Thu, 26 Nov 2020 13:05:40 +0100
Subject: [PATCH] next of keen renamed

---
 CHANGELOG                                     |  1 +
 smash/web/api_views/subject.py                | 36 +++++------
 .../importer/csv_tns_subject_import_reader.py |  4 +-
 .../web/migrations/0182_auto_20201126_1154.py | 59 +++++++++++++++++++
 smash/web/models/subject.py                   | 22 +++----
 smash/web/models/subject_columns.py           | 22 +++----
 6 files changed, 102 insertions(+), 42 deletions(-)
 create mode 100644 smash/web/migrations/0182_auto_20201126_1154.py

diff --git a/CHANGELOG b/CHANGELOG
index 69dc0ae8..e25e8a53 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,6 +3,7 @@ smasch (1.0.0~alpha.1-0) unstable; urgency=low
   * improvement: added views to delete StudySubject and Subject (#354)
   * improvement: study subject can be configured to contain custom fields
     (#339)
+  * small improvement: "next of keen" renamed to "next of kin" (#362)
   * small improvement: django command for creating admin in application (#347)
   * small improvement: django admin panel contains usable data tables (#346)
   * small improvement: possibility to unfinish visit (#351)
diff --git a/smash/web/api_views/subject.py b/smash/web/api_views/subject.py
index 7e3ce4e7..8a3b3b30 100644
--- a/smash/web/api_views/subject.py
+++ b/smash/web/api_views/subject.py
@@ -77,9 +77,9 @@ def get_subject_columns(request, subject_list_type):
     add_column(result, "Resigned", "resigned", study_subject_columns, "yes_no_filter", study.columns)
     add_column(result, "Endpoint Reached", "endpoint_reached", study_subject_columns, "yes_no_filter", study.columns)
     add_column(result, "Postponed", "postponed", study_subject_columns, "yes_no_filter", study.columns)
-    add_column(result, "Next of keen", "next_of_keen_name", subject_columns, "string_filter")
-    add_column(result, "Next of keen phone", "next_of_keen_phone", subject_columns, "string_filter")
-    add_column(result, "Next of keen address", "next_of_keen_address", subject_columns, "string_filter")
+    add_column(result, "Next of kin", "next_of_kin_name", subject_columns, "string_filter")
+    add_column(result, "Next of kin phone", "next_of_kin_phone", subject_columns, "string_filter")
+    add_column(result, "Next of kin address", "next_of_kin_address", subject_columns, "string_filter")
     add_column(result, "Brain donation agreement", "brain_donation_agreement", study_subject_columns, "yes_no_filter",
                study.columns)
     add_column(result, "Excluded", "excluded", study_subject_columns, "yes_no_filter", study.columns)
@@ -222,12 +222,12 @@ def get_subjects_order(subjects_to_be_ordered: QuerySet, order_column, order_dir
         result = subjects_to_be_ordered.order_by(order_direction + 'subject__last_name')
     elif order_column == "address":
         result = subjects_to_be_ordered.order_by(order_direction + 'subject__address')
-    elif order_column == "next_of_keen_name":
-        result = subjects_to_be_ordered.order_by(order_direction + 'subject__next_of_keen_name')
-    elif order_column == "next_of_keen_phone":
-        result = subjects_to_be_ordered.order_by(order_direction + 'subject__next_of_keen_phone')
-    elif order_column == "next_of_keen_address":
-        result = subjects_to_be_ordered.order_by(order_direction + 'subject__next_of_keen_address')
+    elif order_column == "next_of_kin_name":
+        result = subjects_to_be_ordered.order_by(order_direction + 'subject__next_of_kin_name')
+    elif order_column == "next_of_kin_phone":
+        result = subjects_to_be_ordered.order_by(order_direction + 'subject__next_of_kin_phone')
+    elif order_column == "next_of_kin_address":
+        result = subjects_to_be_ordered.order_by(order_direction + 'subject__next_of_kin_address')
     elif order_column == "nd_number":
         result = subjects_to_be_ordered.order_by(order_direction + 'nd_number')
     elif order_column == "referral":
@@ -378,12 +378,12 @@ def get_subjects_filtered(subjects_to_be_filtered: QuerySet, filters) -> QuerySe
             result = result.filter(subject__last_name__icontains=value)
         elif column == "address":
             result = result.filter(subject__address__icontains=value)
-        elif column == "next_of_keen_name":
-            result = result.filter(subject__next_of_keen_name__icontains=value)
-        elif column == "next_of_keen_phone":
-            result = result.filter(subject__next_of_keen_phone__icontains=value)
-        elif column == "next_of_keen_address":
-            result = result.filter(subject__next_of_keen_address__icontains=value)
+        elif column == "next_of_kin_name":
+            result = result.filter(subject__next_of_kin_name__icontains=value)
+        elif column == "next_of_kin_phone":
+            result = result.filter(subject__next_of_kin_phone__icontains=value)
+        elif column == "next_of_kin_address":
+            result = result.filter(subject__next_of_kin_address__icontains=value)
         elif column == "nd_number":
             result = result.filter(nd_number__icontains=value)
         elif column == "referral":
@@ -593,9 +593,9 @@ def serialize_subject(study_subject):
         "first_name": study_subject.subject.first_name,
         "last_name": study_subject.subject.last_name,
         "address": study_subject.subject.pretty_address(),
-        "next_of_keen_name": study_subject.subject.next_of_keen_name,
-        "next_of_keen_phone": study_subject.subject.next_of_keen_phone,
-        "next_of_keen_address": study_subject.subject.next_of_keen_address,
+        "next_of_kin_name": study_subject.subject.next_of_kin_name,
+        "next_of_kin_phone": study_subject.subject.next_of_kin_phone,
+        "next_of_kin_address": study_subject.subject.next_of_kin_address,
         "date_born": study_subject.subject.date_born,
         "datetime_contact_reminder": contact_reminder,
         "last_contact_attempt": last_contact_attempt_string,
diff --git a/smash/web/importer/csv_tns_subject_import_reader.py b/smash/web/importer/csv_tns_subject_import_reader.py
index c20862be..3c27fe8e 100644
--- a/smash/web/importer/csv_tns_subject_import_reader.py
+++ b/smash/web/importer/csv_tns_subject_import_reader.py
@@ -54,8 +54,8 @@ class TnsCsvSubjectImportReader(SubjectImportReader):
             study_subject.subject.phone_number = self.get_new_value(study_subject.subject.phone_number, column_name,
                                                                     value)
         elif column_name == "representative":
-            study_subject.subject.next_of_keen_name = self.get_new_value(study_subject.subject.next_of_keen_name,
-                                                                         column_name, value)
+            study_subject.subject.next_of_kin_name = self.get_new_value(study_subject.subject.next_of_kin_name,
+                                                                        column_name, value)
         elif column_name == "treatingphysician":
             if value is not None and value != "":
                 value = "Treating physician: " + value
diff --git a/smash/web/migrations/0182_auto_20201126_1154.py b/smash/web/migrations/0182_auto_20201126_1154.py
new file mode 100644
index 00000000..3c7e9375
--- /dev/null
+++ b/smash/web/migrations/0182_auto_20201126_1154.py
@@ -0,0 +1,59 @@
+# Generated by Django 2.0.13 on 2020-11-26 11:54
+
+import django.core.files.storage
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('web', '0181_worker_privacy_notice_accepted'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='subjectcolumns',
+            old_name='next_of_keen_address',
+            new_name='next_of_kin_address',
+        ),
+        migrations.RenameField(
+            model_name='subjectcolumns',
+            old_name='next_of_keen_name',
+            new_name='next_of_kin_name',
+        ),
+        migrations.RenameField(
+            model_name='subjectcolumns',
+            old_name='next_of_keen_phone',
+            new_name='next_of_kin_phone',
+        ),
+        migrations.RenameField(
+            model_name='subject',
+            old_name='next_of_keen_address',
+            new_name='next_of_kin_address',
+        ),
+        migrations.RenameField(
+            model_name='subject',
+            old_name='next_of_keen_name',
+            new_name='next_of_kin_name',
+        ),
+        migrations.RenameField(
+            model_name='subject',
+            old_name='next_of_keen_phone',
+            new_name='next_of_kin_phone',
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='next_of_kin_address',
+            field=models.TextField(blank=True, max_length=2000, verbose_name='Next of kin address'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='next_of_kin_name',
+            field=models.CharField(blank=True, max_length=255, verbose_name='Next of kin'),
+        ),
+        migrations.AlterField(
+            model_name='subject',
+            name='next_of_kin_phone',
+            field=models.CharField(blank=True, max_length=50, verbose_name='Next of kin phone'),
+        ),
+    ]
diff --git a/smash/web/models/subject.py b/smash/web/models/subject.py
index 160c2c41..f7660020 100644
--- a/smash/web/models/subject.py
+++ b/smash/web/models/subject.py
@@ -106,20 +106,20 @@ class Subject(models.Model):
                                 verbose_name='Country', on_delete=models.CASCADE
                                 )
 
-    next_of_keen_name = models.CharField(max_length=255,
+    next_of_kin_name = models.CharField(max_length=255,
+                                        blank=True,
+                                        verbose_name='Next of kin'
+                                        )
+
+    next_of_kin_phone = models.CharField(max_length=50,
                                          blank=True,
-                                         verbose_name='Next of keen'
+                                         verbose_name='Next of kin phone'
                                          )
 
-    next_of_keen_phone = models.CharField(max_length=50,
-                                          blank=True,
-                                          verbose_name='Next of keen phone'
-                                          )
-
-    next_of_keen_address = models.TextField(max_length=2000,
-                                            blank=True,
-                                            verbose_name='Next of keen address'
-                                            )
+    next_of_kin_address = models.TextField(max_length=2000,
+                                           blank=True,
+                                           verbose_name='Next of kin address'
+                                           )
 
     dead = models.BooleanField(
         verbose_name='Deceased',
diff --git a/smash/web/models/subject_columns.py b/smash/web/models/subject_columns.py
index 82c4bf3b..2572b754 100644
--- a/smash/web/models/subject_columns.py
+++ b/smash/web/models/subject_columns.py
@@ -84,17 +84,17 @@ class SubjectColumns(models.Model):
                                verbose_name='Deceased',
                                )
 
-    next_of_keen_name = models.BooleanField(max_length=1,
+    next_of_kin_name = models.BooleanField(max_length=1,
+                                           default=False,
+                                           verbose_name='Next of kin',
+                                           )
+
+    next_of_kin_phone = models.BooleanField(max_length=1,
                                             default=False,
-                                            verbose_name='Next of kin',
+                                            verbose_name='Next of kin phone',
                                             )
 
-    next_of_keen_phone = models.BooleanField(max_length=1,
-                                             default=False,
-                                             verbose_name='Next of kin phone',
-                                             )
-
-    next_of_keen_address = models.BooleanField(max_length=1,
-                                               default=False,
-                                               verbose_name='Next of kin address',
-                                               )
+    next_of_kin_address = models.BooleanField(max_length=1,
+                                              default=False,
+                                              verbose_name='Next of kin address',
+                                              )
-- 
GitLab