Skip to content
Snippets Groups Projects
Commit bb1179c7 authored by Lorenzo Conti's avatar Lorenzo Conti
Browse files

Merge branch 'feature/duration-rounding-strategy' into 'main'

Rounding strategy for slot duration at JSON export

Closes #16

See merge request !6
parents e0801c1f 9301ef7a
No related branches found
No related tags found
1 merge request!6Rounding strategy for slot duration at JSON export
Pipeline #269213 passed
import decimal
import itertools import itertools
import json import json
import math
from dataclasses import dataclass from dataclasses import dataclass
from datetime import datetime, timedelta from datetime import datetime, timedelta
from typing import Iterable, Generator from typing import Iterable, Generator
...@@ -951,10 +953,12 @@ class AKSlot(models.Model): ...@@ -951,10 +953,12 @@ class AKSlot(models.Model):
return [] return []
return [f"availability-person-{owner.pk}"] return [f"availability-person-{owner.pk}"]
ceil_offet_eps = decimal.Decimal(1e-4)
# self.slots_in_an_hour is set in AKJSONExportView # self.slots_in_an_hour is set in AKJSONExportView
data = { data = {
"id": str(self.pk), "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": {}, "properties": {},
"room_constraints": [constraint.name "room_constraints": [constraint.name
for constraint in self.ak.requirements.all()], for constraint in self.ak.requirements.all()],
...@@ -965,6 +969,7 @@ class AKSlot(models.Model): ...@@ -965,6 +969,7 @@ class AKSlot(models.Model):
for owner in self.ak.owners.all()]), for owner in self.ak.owners.all()]),
"description": self.ak.description, "description": self.ak.description,
"reso": self.ak.reso, "reso": self.ak.reso,
"duration_in_hours": float(self.duration),
}, },
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment