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
6 merge requests!262[WIP] compatibility with koma solver import/export,!261[WIP] compatibility with koma solver import/export,!260[WIP] import/export merge,!259Add view to clear schedule,!237Draft: add tests on json export,!235Merge fork for interoperability of KoMa solver
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