From 13bd3ca12ebc5ad826b14a977102d73aead73962 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Mon, 29 Jun 2020 12:57:41 +0200 Subject: [PATCH] allow to import email and address data --- .../importer/csv_tns_subject_import_reader.py | 16 ++++++++++++---- smash/web/tests/data/tns_subjects_import.csv | 8 ++++---- .../test_tns_csv_subject_import_reader.py | 5 +++++ 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/smash/web/importer/csv_tns_subject_import_reader.py b/smash/web/importer/csv_tns_subject_import_reader.py index db6de854..74ee4b1a 100644 --- a/smash/web/importer/csv_tns_subject_import_reader.py +++ b/smash/web/importer/csv_tns_subject_import_reader.py @@ -4,8 +4,8 @@ import logging import codecs from subject_import_reader import SubjectImportReader -from web.models import StudySubject, Subject, Study -from web.models.constants import GLOBAL_STUDY_ID +from ..models import StudySubject, Subject, Study +from ..models.constants import GLOBAL_STUDY_ID CSV_DATE_FORMAT = "%d/%m/%Y" @@ -41,6 +41,15 @@ class TnsCsvSubjectImportReader(SubjectImportReader): study_subject.subject.last_name = self.get_new_value(study_subject.subject.last_name, column_name, value) elif column_name == "donor_id": study_subject.screening_number = self.get_new_value(study_subject.screening_number, column_name, value) + elif column_name == "email": + study_subject.subject.email = self.get_new_value(study_subject.subject.email, column_name, value) + elif column_name == "address": + study_subject.subject.address = self.get_new_value(study_subject.subject.address, column_name, value) + elif column_name == "postal_code": + study_subject.subject.postal_code = self.get_new_value(study_subject.subject.postal_code, column_name, + value) + elif column_name == "city": + study_subject.subject.city = self.get_new_value(study_subject.subject.city, column_name, value) elif column_name == "phonenr": study_subject.subject.phone_number = self.get_new_value(study_subject.subject.phone_number, column_name, value) @@ -86,7 +95,6 @@ class TnsCsvSubjectImportReader(SubjectImportReader): "). Latest value will be used") return datetime.datetime.strptime(new_value, CSV_DATE_FORMAT) + def remove_bom(line): return line[3:] if line.startswith(codecs.BOM_UTF8) else line - - diff --git a/smash/web/tests/data/tns_subjects_import.csv b/smash/web/tests/data/tns_subjects_import.csv index 05a910ed..9ac0e88a 100644 --- a/smash/web/tests/data/tns_subjects_import.csv +++ b/smash/web/tests/data/tns_subjects_import.csv @@ -1,4 +1,4 @@ -donor_id;firstname;lastname;dateofbirth;phonenr;treatingphysician;sig_firstname;sig_lastname;representative -cov-000111;John;Doe;01/01/1977;555555;Gregory House;John;Doe;Mario Doe -cov-222333;John2;Doe2;01/02/1977;621000000;Gregory House2;John2;Doe2; -cov-444444;John2;Doe2;01/03/1977;691000000;Gregory House3;John2;Doe2;Elsa Doe \ No newline at end of file +donor_id;firstname;lastname;dateofbirth;phonenr;treatingphysician;sig_firstname;sig_lastname;representative;address;postal_code;city;email +cov-000111;John;Doe;01/01/1977;555555;Gregory House;John;Doe;Mario Doe;;;; +cov-222333;John2;Doe2;01/02/1977;621000000;Gregory House2;John2;Doe2;;5, avenue blabla;9940;Belval;john.doe@neverland.lu +cov-444444;John2;Doe2;01/03/1977;691000000;Gregory House3;John2;Doe2;Elsa Doe;;;; \ No newline at end of file diff --git a/smash/web/tests/importer/test_tns_csv_subject_import_reader.py b/smash/web/tests/importer/test_tns_csv_subject_import_reader.py index f81ec8f5..e9d46d49 100644 --- a/smash/web/tests/importer/test_tns_csv_subject_import_reader.py +++ b/smash/web/tests/importer/test_tns_csv_subject_import_reader.py @@ -30,6 +30,11 @@ class TestTnsCsvSubjectReader(TestCase): self.assertEqual("cov-222333", study_subject.screening_number) self.assertEqual("cov-222333", study_subject.nd_number) self.assertEqual("621000000", study_subject.subject.phone_number) + self.assertEqual("john.doe@neverland.lu", study_subject.subject.email) + self.assertEqual("5, avenue blabla", study_subject.subject.address) + self.assertEqual("9940", study_subject.subject.postal_code) + self.assertEqual("Belval", study_subject.subject.city) + self.assertTrue("Gregory House2" in study_subject.comments) self.assertEqual(1, study_subject.subject.date_born.day) -- GitLab