From 0face6f98f699dada8967cd71f7fa30746824e5c Mon Sep 17 00:00:00 2001
From: Michael Bauer <michael-bauer@posteo.de>
Date: Fri, 11 Oct 2024 14:16:23 +0200
Subject: [PATCH] Implement time-field

---
 .../frontend/components/Substitutions.vue        | 16 ++++++++++++++++
 aleksis/apps/chronos/schema/__init__.py          |  8 ++++----
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/aleksis/apps/chronos/frontend/components/Substitutions.vue b/aleksis/apps/chronos/frontend/components/Substitutions.vue
index 3a668efa..23c74f20 100644
--- a/aleksis/apps/chronos/frontend/components/Substitutions.vue
+++ b/aleksis/apps/chronos/frontend/components/Substitutions.vue
@@ -23,6 +23,22 @@ import CRUDList from "aleksis.core/components/generic/CRUDList.vue";
         v-for="g in oldGroups"
       > {{ g.shortName }} </span>
     </template>
+    <template #time="{ item: { startSlot, endSlot, startTime, endTime } }">
+      <span v-if="startSlot && endSlot && startSlot === endSlot">
+        {{ startSlot }}.
+      </span>
+      <span v-else-if="startSlot && endSlot">
+        {{ startSlot }}.–{{ endSlot }}.
+      </span>
+      <span v-else-if="startTime && endTime">
+        {{ $d(new Date(startTime), "shortTime") }}
+        –
+        {{ $d(new Date(endTime), "shortTime")}}
+      </span>
+      <span v-else>
+        TODO 18n all day
+      </span>
+    </template>
   </c-r-u-d-list>
 </template>
 
diff --git a/aleksis/apps/chronos/schema/__init__.py b/aleksis/apps/chronos/schema/__init__.py
index a71ba824..2bda915e 100644
--- a/aleksis/apps/chronos/schema/__init__.py
+++ b/aleksis/apps/chronos/schema/__init__.py
@@ -132,8 +132,8 @@ class SubstitutionType(graphene.ObjectType):
     new_groups = graphene.List(GroupType)
     start_slot = graphene.Int()
     end_slot = graphene.Int()
-    start_time = graphene.Time()
-    end_time = graphene.Time()
+    start_time = graphene.DateTime()
+    end_time = graphene.DateTime()
     old_teachers = graphene.List(PersonType)
     new_teachers = graphene.List(PersonType)
     old_subject = graphene.String()
@@ -163,10 +163,10 @@ class SubstitutionType(graphene.ObjectType):
         return root['REFERENCE_OBJECT'].slot_number_end
 
     def resolve_start_time(root, info):
-        return root['DTSTART'].dt.time()
+        return root['DTSTART'].dt
 
     def resolve_end_time(root, info):
-        return root['DTEND'].dt.time()
+        return root['DTEND'].dt
 
     def resolve_old_teachers(root,info):
         le = root['REFERENCE_OBJECT']
-- 
GitLab