diff --git a/smash/web/importer/importer.py b/smash/web/importer/importer.py index e30323dd1f5c6651e14b3ac48e0869767d672fa1..9cb1b2995a21425a0c822fc5a473eb3d53582429 100644 --- a/smash/web/importer/importer.py +++ b/smash/web/importer/importer.py @@ -3,7 +3,7 @@ import logging import sys import traceback -from web.models import StudySubject, Subject +from web.models import StudySubject, Subject, Language from .etl_common import EtlCommon from .subject_import_reader import SubjectImportReader from .warning_counter import MsgCounterHandler @@ -55,7 +55,9 @@ class Importer(EtlCommon): for field in Subject._meta.get_fields(): if field.get_internal_type() == "CharField" or \ field.get_internal_type() == "DateField" or \ - field.get_internal_type() == "BooleanField": + field.get_internal_type() == "BooleanField" or \ + field.get_internal_type() == "TextField" or \ + (field.get_internal_type() == "ForeignKey" and field.related_model in (Language,)): old_value = getattr(db_study_subject.subject, field.name) new_value = self.get_new_value(old_value, getattr(study_subject.subject, field.name)) self.create_provenance_and_change_data(db_study_subject.subject, field.name, new_value, Subject) @@ -64,7 +66,9 @@ class Importer(EtlCommon): for field in StudySubject._meta.get_fields(): if field.get_internal_type() == "CharField" or \ field.get_internal_type() == "DateField" or \ - field.get_internal_type() == "BooleanField": + field.get_internal_type() == "BooleanField" or \ + field.get_internal_type() == "TextField" or \ + (field.get_internal_type() == "ForeignKey" and field.related_model in (Language,)): old_value = getattr(db_study_subject, field.name) new_value = self.get_new_value(old_value, getattr(study_subject, field.name)) self.create_provenance_and_change_data(db_study_subject, field.name, new_value, StudySubject)