From d828b89d0076462897bf9a8b3cd59de712b89b2d Mon Sep 17 00:00:00 2001
From: Felix Blanke <info@fblanke.de>
Date: Fri, 27 Dec 2024 14:59:11 +0100
Subject: [PATCH] Use uniform discretization if no default slots exist

---
 AKModel/views/ak.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/AKModel/views/ak.py b/AKModel/views/ak.py
index 44fbc096..f1827b29 100644
--- a/AKModel/views/ak.py
+++ b/AKModel/views/ak.py
@@ -9,7 +9,7 @@ from django.views.generic import ListView, DetailView
 from AKModel.availability.models import Availability
 from AKModel.metaviews.admin import AdminViewMixin, FilterByEventSlugMixin, EventSlugMixin, IntermediateAdminView, \
     IntermediateAdminActionView
-from AKModel.models import AKRequirement, AKSlot, Event, AKOrgaMessage, AK, Room, AKOwner, merge_blocks
+from AKModel.models import AKRequirement, AKSlot, DefaultSlot, Event, AKOrgaMessage, AK, Room, AKOwner, merge_blocks
 
 
 class AKRequirementOverview(AdminViewMixin, FilterByEventSlugMixin, ListView):
@@ -114,7 +114,13 @@ class AKJSONExportView(AdminViewMixin, FilterByEventSlugMixin, ListView):
             if (values := AKSlot.objects.select_related().filter(ak__pk=ak_id, fixed=True)).exists()
         }
 
-        for block in merge_blocks(self.event.default_time_slots(slots_in_an_hour=SLOTS_IN_AN_HOUR)):
+        if DefaultSlot.objects.filter(event=self.event).exists():
+            # discretize default slots if they exists
+            blocks = merge_blocks(self.event.default_time_slots(slots_in_an_hour=SLOTS_IN_AN_HOUR))
+        else:
+            blocks = self.event.uniform_time_slots(slots_in_an_hour=SLOTS_IN_AN_HOUR)
+
+        for block in blocks:
             current_block = []
 
             for timeslot in block:
-- 
GitLab