From 624206c70def3d2122561dfc2aaf24d7b81f8d06 Mon Sep 17 00:00:00 2001
From: Felix Blanke <info@fblanke.de>
Date: Tue, 21 Jan 2025 16:16:39 +0100
Subject: [PATCH] Change rounding strategy to ceil

---
 AKModel/models.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/AKModel/models.py b/AKModel/models.py
index 800cb3e8..487a0ece 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -1,5 +1,7 @@
+import decimal
 import itertools
 import json
+import math
 from dataclasses import dataclass
 from datetime import datetime, timedelta
 from typing import Iterable, Generator
@@ -1008,11 +1010,12 @@ class AKSlot(models.Model):
 
         conflict_slots = AKSlot.objects.filter(ak__in=self.ak.conflicts.all())
         dependency_slots = AKSlot.objects.filter(ak__in=self.ak.prerequisites.all())
+        ceil_offet_eps = decimal.Decimal(1e-4)
 
         # self.slots_in_an_hour is set in AKJSONExportView
         data = {
             "id": str(self.pk),
-            "duration": round(self.duration * self.slots_in_an_hour),
+            "duration": math.ceil(self.duration * self.slots_in_an_hour - ceil_offet_eps),
             "properties": {
                 "conflicts": [str(conflict.pk) for conflict in conflict_slots.all()],
                 "dependencies": [str(dep.pk) for dep in dependency_slots.all()],
-- 
GitLab