From f5e42804f800ce57f5facb1fba626751fa116ec0 Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Tue, 16 Jul 2019 23:11:11 +0200 Subject: [PATCH] Fix imports. --- biscuit/apps/untis/util.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/biscuit/apps/untis/util.py b/biscuit/apps/untis/util.py index cec59d4..cedce2b 100644 --- a/biscuit/apps/untis/util.py +++ b/biscuit/apps/untis/util.py @@ -1,6 +1,9 @@ from datetime import date, time from xml.dom import minidom +from django.contrib import messages +from django.utils.translation import ugettext_lazy as _ + from biscuit.apps.cambro.models import Room from biscuit.apps.chronos.models import Subject, TimePeriod, Lesson from biscuit.core.models import Group, Person @@ -63,7 +66,7 @@ def untis_import_xml(request, untis_xml): subject_abbrev = get_child_node_id(lesson_node, 'lesson_subject')[3:] teacher_short_name = get_child_node_id( lesson_node, 'lesson_teacher')[3:] - group_short_names = [v[:3] for v in get_child_node_id( + group_short_names = [v[3:] for v in get_child_node_id( lesson_node, 'lesson_classes').split(' ')] effectivebegindate = get_child_node_text( lesson_node, 'effectivebegindate') @@ -77,7 +80,6 @@ def untis_import_xml(request, untis_xml): time_periods.append((day, period)) subject = Subject.objects.get(abbrev=subject_abbrev) - teachers = [Person.objects.get(short_name=teacher_short_name)] groups = [Group.objects.get(short_name=v) for v in group_short_names] periods = [TimePeriod.objects.get( weekday=v[0], period=v[1]) for v in time_periods] @@ -86,5 +88,11 @@ def untis_import_xml(request, untis_xml): date_end = date(int(effectiveenddate[:4]), int(effectiveenddate[4:6]), int( effectiveenddate[6:])) if effectiveenddate else None + try: + teachers = [Person.objects.get(short_name=teacher_short_name)] + except Person.DoesNotExist: + messages.error(request, _( + 'Failed to import lesson: Teacher %s does not exist.') % teacher_short_name) + lesson, created = Lesson.objects.get_or_create(groups=groups, periods=periods, defaults={ 'subject': subject, 'teachers': teachers, 'date_start': date_start, 'date_end': date_end}) -- GitLab