diff --git a/client/src/locales/de/translation.json b/client/src/locales/de/translation.json index 55a8ebec..dd5b1340 100644 --- a/client/src/locales/de/translation.json +++ b/client/src/locales/de/translation.json @@ -269,7 +269,7 @@ "selfEvaluationNo": "@:selfEvaluation: Muss ich nochmals anschauen.", "selfEvaluationYes": "@:selfEvaluation: Ich kann das.", "steps": "Schritt {{current}} von {{max}}", - "title": "@:selfEvaluation.selfEvaluation {{title}}", + "title": "Selbsteinschätzung {{title}}", "yes": "Ja, ich kann das" }, "settings": { diff --git a/client/src/pages/DashboardPage.vue b/client/src/pages/DashboardPage.vue index f7ca56d5..bd246037 100644 --- a/client/src/pages/DashboardPage.vue +++ b/client/src/pages/DashboardPage.vue @@ -91,7 +91,9 @@ const getNextStepLink = (courseSession: CourseSession) => {
{{ $t("uk.contact.address") }}
- uk.contact.email + + uek-support@vbv-afa.ch +

diff --git a/server/vbv_lernwelt/importer/services.py b/server/vbv_lernwelt/importer/services.py index 30b35e9a..2cd64419 100644 --- a/server/vbv_lernwelt/importer/services.py +++ b/server/vbv_lernwelt/importer/services.py @@ -185,6 +185,7 @@ def create_or_update_user( last_name: str = "", sso_id: str = None, contract_number: str = "", + date_of_birth: str = "", ): logger.debug( "create_or_update_user", @@ -200,9 +201,13 @@ def create_or_update_user( if user_qs.exists(): user = user_qs.first() + # use the ID from DBPLAP2 (Lehrvertragsnummer, firstname, lastname, date of birth) if not user and contract_number: user_qs = User.objects.filter( - additional_json_data__Lehrvertragsnummer=contract_number + first_name=first_name, + last_name=last_name, + additional_json_data__Lehrvertragsnummer=contract_number, + additional_json_data__Geburtsdatum=date_of_birth, ) if user_qs.exists(): user = user_qs.first() @@ -502,6 +507,8 @@ def import_students_from_excel(filename: str): "Name", "Sprache", "Durchführungen", + "Lehrvertragsnummer", + "Geburtsdatum", ], ) create_or_update_student(data) @@ -514,11 +521,14 @@ def create_or_update_student(data: Dict[str, Any]): label="import", ) + date_of_birth = _get_date_of_birth(data) + user = create_or_update_user( email=data["Email"].lower(), first_name=data["Vorname"], last_name=data["Name"], contract_number=data.get("Lehrvertragsnummer", ""), + date_of_birth=date_of_birth, ) user.language = data["Sprache"] @@ -535,6 +545,16 @@ def create_or_update_student(data: Dict[str, Any]): csu.save() +def _get_date_of_birth(data: Dict[str, Any]) -> str: + date_of_birth = data.get("Geburtsdatum", None) + if date_of_birth is None: + return "" + elif date_of_birth is date or date_of_birth is datetime: + return date_of_birth.strftime("%d.%m.%Y") + elif type(date_of_birth) is str: + return date_of_birth + + def sync_students_from_t2l_excel(filename: str): workbook = load_workbook(filename=filename) sheet = workbook.active @@ -546,10 +566,13 @@ def sync_students_from_t2l_excel(filename: str): def sync_students_from_t2l(data): - # ignore errors + date_of_birth = _get_date_of_birth(data) try: user = User.objects.get( - additional_json_data__Lehrvertragsnummer=data["Lehrvertragsnummer"] + first_name=data["Vorname"], + last_name=data["Name"], + additional_json_data__Lehrvertragsnummer=data["Lehrvertragsnummer"], + additional_json_data__Geburtsdatum=date_of_birth, ) except User.DoesNotExist: return diff --git a/server/vbv_lernwelt/importer/tests/__init__.py b/server/vbv_lernwelt/importer/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/server/vbv_lernwelt/importer/tests/test_import_students.py b/server/vbv_lernwelt/importer/tests/test_import_students.py index e9597c25..d771d89d 100644 --- a/server/vbv_lernwelt/importer/tests/test_import_students.py +++ b/server/vbv_lernwelt/importer/tests/test_import_students.py @@ -51,6 +51,7 @@ class CreateOrUpdateStudentTestCase(TestCase): "Durchführungen": "DE 2023 A", "Lehrvertragsnummer": "1234", "Tel. Privat": "079 593 83 43", + "Geburtsdatum": "01.01.2000", } def test_create_student(self): diff --git a/server/vbv_lernwelt/importer/tests/test_t2l_sync.py b/server/vbv_lernwelt/importer/tests/test_t2l_sync.py index cc889a80..c800a52e 100644 --- a/server/vbv_lernwelt/importer/tests/test_t2l_sync.py +++ b/server/vbv_lernwelt/importer/tests/test_t2l_sync.py @@ -32,6 +32,7 @@ class SyncT2lTestCase(TestCase): "Durchführungen": "DE 2023 A", "Lehrvertragsnummer": "1234", "Tel. Privat": "079 593 83 43", + "Geburtsdatum": "01.01.2000", } create_or_update_student(self.user_dict) @@ -44,6 +45,7 @@ class SyncT2lTestCase(TestCase): "Durchführungen": "DE 2023 A", "Lehrvertragsnummer": "1234", "Tel. Privat": "079 593 83 65", + "Geburtsdatum": "01.01.2000", } sync_students_from_t2l(user_dict) @@ -65,6 +67,7 @@ class SyncT2lTestCase(TestCase): "Lehrvertragsnummer": "1234", "Tel. Privat": "079 593 83 43", "Firma": "VBV", + "Geburtsdatum": "01.01.2000", } sync_students_from_t2l(user_dict) @@ -84,6 +87,7 @@ class SyncT2lTestCase(TestCase): "Durchführungen": "DE 2023 B", "Lehrvertragsnummer": "1234", "Tel. Privat": "079 593 83 43", + "Geburtsdatum": "01.01.2000", } sync_students_from_t2l(user_dict)