From 87d51c3a94ede65cfdaa803a987ee47d54908b04 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Fri, 15 Nov 2024 18:55:32 +0100
Subject: [PATCH] Fix get_or_create for documentations to prevent double
 entries

---
 aleksis/apps/alsijil/models.py | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py
index bab91988c..7d869c497 100644
--- a/aleksis/apps/alsijil/models.py
+++ b/aleksis/apps/alsijil/models.py
@@ -292,12 +292,11 @@ class Documentation(CalendarEvent):
                 lesson_event.teachers,
             )
 
-        obj = cls.objects.create(
+        obj, __ = cls.objects.get_or_create(
             datetime_start=datetime_start,
             datetime_end=datetime_end,
-            amends=lesson_event,
             course=course,
-            subject=subject,
+            defaults=dict(subject=subject, amends=lesson_event),
         )
         obj.teachers.set(teachers.all())
         obj.save()
@@ -308,7 +307,7 @@ class Documentation(CalendarEvent):
         return obj
 
     @classmethod
-    def get_or_create_by_id(cls, _id: str | int, user):
+    def get_or_create_by_id(cls, _id: str, user):
         if _id.startswith("DUMMY"):
             return cls.create_from_lesson_event(
                 user,
-- 
GitLab