From dbf97a5abff19453af2e100897ede7680598cc55 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sat, 11 Jan 2025 21:25:55 +0100
Subject: [PATCH] Fix import of supervisions for non-existing breaks

---
 aleksis/apps/untis/util/mysql/importers/common_data.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/aleksis/apps/untis/util/mysql/importers/common_data.py b/aleksis/apps/untis/util/mysql/importers/common_data.py
index 23d7d27..1e04465 100644
--- a/aleksis/apps/untis/util/mysql/importers/common_data.py
+++ b/aleksis/apps/untis/util/mysql/importers/common_data.py
@@ -386,13 +386,18 @@ def import_supervision_areas(
                 weekday = int(raw_supervision_2[2]) - 1
                 before_period_number = int(raw_supervision_2[3])
                 teacher = teachers_ref[teacher_id]
-                slot = breaks_ref[weekday][before_period_number]
 
                 logger.info(
                     f"Import supervision on weekday {weekday} before the "
                     f"{before_period_number}. period (teacher {teacher})"
                 )
 
+                slot = breaks_ref.get(weekday, {}).get(before_period_number)
+
+                if not slot:
+                    logger.warning("Skip supervision as slot doesn't exist.")
+                    continue
+
                 # Get or create
                 possible_supervisions = lesrooster_models.Supervision.objects.filter(
                     break_slot=slot,
@@ -449,7 +454,7 @@ def import_supervision_areas(
                 with create_revision():
                     set_comment(_("Deleted by Untis import"))
                     supervision.delete()
-                logger.info(f"    Supervision {supervision} deleted")
+                logger.info(f"    Supervision {supervision.id} deleted")
 
         ref[import_ref] = {"area": new_area, "supervisions": supervisions_ref}
 
-- 
GitLab