From ac8b93d7ec8114bf28c5c94768004b7b87dc1589 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Thu, 4 Apr 2024 22:12:37 +0200
Subject: [PATCH] Use reversion for coursebook entries

---
 aleksis/apps/alsijil/schema/documentation.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/aleksis/apps/alsijil/schema/documentation.py b/aleksis/apps/alsijil/schema/documentation.py
index 8ce3adb7b..442f2156a 100644
--- a/aleksis/apps/alsijil/schema/documentation.py
+++ b/aleksis/apps/alsijil/schema/documentation.py
@@ -6,6 +6,7 @@ from django.utils.timezone import localdate, localtime
 import graphene
 from graphene_django.types import DjangoObjectType
 from guardian.shortcuts import get_objects_for_user
+from reversion import create_revision, set_comment, set_user
 
 from aleksis.apps.alsijil.util.predicates import can_edit_documentation, is_in_allowed_time_range
 from aleksis.apps.chronos.models import LessonEvent
@@ -117,8 +118,6 @@ class DocumentationBatchCreateOrUpdateMutation(graphene.Mutation):
                     and datetime_start <= localtime()
                 )
             ):
-                # Timezone removal is necessary due to ISO style offsets are no valid timezones.
-                # Instead, we take the timezone from the lesson_event and save it in a dedicated field.
                 obj = Documentation.objects.create(
                     datetime_start=datetime_start,
                     datetime_end=datetime_end,
@@ -159,6 +158,9 @@ class DocumentationBatchCreateOrUpdateMutation(graphene.Mutation):
 
     @classmethod
     def mutate(cls, root, info, input):  # noqa
-        objs = [cls.create_or_update(info, doc) for doc in input]
+        with create_revision():
+            set_user(info.context.user)
+            set_comment("Updated in coursebook")
+            objs = [cls.create_or_update(info, doc) for doc in input]
 
         return DocumentationBatchCreateOrUpdateMutation(documentations=objs)
-- 
GitLab