Set some field priority during student import
This commit is contained in:
parent
d9099f039b
commit
626ab6888d
2 changed files with 9 additions and 4 deletions
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue