diff --git a/stages/tests.py b/stages/tests.py index 1845f10..8cb8c0a 100644 --- a/stages/tests.py +++ b/stages/tests.py @@ -471,7 +471,7 @@ class ImportTests(TestCase): option='ENF', instructor=inst ) # An existing student, klass should be changed. - Student.objects.create(ext_id=11111, first_name="Séraphin", last_name="Lampion", klass=k1) + Student.objects.create(ext_id=11111, first_name="Séraphin", last_name="Lampion", city='Marin', klass=k1) Student.objects.create(ext_id=44444, first_name="Tryphon", last_name="Tournesol", klass=k1) path = os.path.join(os.path.dirname(__file__), 'test_files', 'CLOEE2_Export_FE_2018.xlsx') @@ -498,8 +498,10 @@ class ImportTests(TestCase): self.assertIn("Objets créés : 2", msg) self.assertIn("Objets modifiés : 1", msg) + # Student already exists, klass changed student1 = Student.objects.get(ext_id=11111) self.assertEqual(student1.klass.name, '2ASSCFEa') + self.assertEqual(student1.city, 'Marin') # file has 'Marin-Epagnier' # New student from existing candidate. student_cand = Student.objects.get(ext_id=22222) self.assertEqual(student_cand.instructor.last_name, 'Rastapopoulos') diff --git a/stages/views/imports.py b/stages/views/imports.py index d6fdc50..f4e466e 100644 --- a/stages/views/imports.py +++ b/stages/views/imports.py @@ -84,6 +84,7 @@ class StudentImportView(ImportViewBase): 'ELE_TEL_PRIVE': 'tel', 'ELE_TEL_MOBILE': 'mobile', 'ELE_EMAIL_RPN': 'email', + 'ELE_COMPTE_RPN': 'login_rpn', 'ELE_DATE_NAISSANCE': 'birth_date', 'ELE_AVS': 'avs', 'ELE_SEXE': 'gender', @@ -105,6 +106,8 @@ class StudentImportView(ImportViewBase): 'HAN': 'Accompagnement des personnes handicapées', 'PAG': 'Accompagnement des personnes âgées', } + # Those values are always taken from the import file + fields_to_overwrite = ['klass', 'login_rpn'] def get_form_kwargs(self): kwargs = super().get_form_kwargs() @@ -172,9 +175,9 @@ class StudentImportView(ImportViewBase): try: student = Student.objects.get(ext_id=defaults['ext_id']) modified = False - for key, val in defaults.items(): - if getattr(student, key) != val: - setattr(student, key, val) + for field_name in self.fields_to_overwrite: + if getattr(student, field_name) != defaults[field_name]: + setattr(student, field_name, defaults[field_name]) modified = True if student.archived: sudent.archived = False