Skip to content
Snippets Groups Projects

Rounding strategy for slot duration at JSON export

Merged Felix Blanke requested to merge feature/duration-rounding-strategy into main
1 file
+ 1
0
Compare changes
  • Side-by-side
  • Inline
+ 6
1
import decimal
import itertools
import json
import math
from dataclasses import dataclass
from datetime import datetime, timedelta
from typing import Iterable, Generator
@@ -934,10 +936,12 @@ class AKSlot(models.Model):
return []
return [f"availability-person-{owner.pk}"]
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": {},
"room_constraints": [constraint.name
for constraint in self.ak.requirements.all()],
@@ -948,6 +952,7 @@ class AKSlot(models.Model):
for owner in self.ak.owners.all()]),
"description": self.ak.description,
"reso": self.ak.reso,
"duration_in_hours": float(self.duration),
},
}
Loading