isere_ens: improve status calculation (#50619)
This commit is contained in:
parent
e8870d6b97
commit
e3d8d26281
|
@ -333,26 +333,31 @@ class IsereENS(BaseResource, HTTPResource):
|
|||
}
|
||||
dates = self.request("api/1.0.0/site/" + site + "/calendar", params=params)
|
||||
|
||||
def status_name(status):
|
||||
return {
|
||||
"AVAILABLE": _("available"),
|
||||
"COMPLETE": _("complete"),
|
||||
"OVERBOOKING": _("overbooking"),
|
||||
"OPEN": _("open"),
|
||||
"CLOSE": _("closed"),
|
||||
}.get(status) or _("unknown")
|
||||
|
||||
for date in dates:
|
||||
date["id"] = site + ":" + date["date"]
|
||||
date["site"] = site
|
||||
date_ = datetime.datetime.strptime(date["date"], "%Y-%m-%d").date()
|
||||
date["date_format"] = date_format(date_, format="DATE_FORMAT")
|
||||
date["disabled"] = False
|
||||
date["color"] = "green"
|
||||
date["status"] = "open"
|
||||
for period in ("morning", "lunch", "afternoon"):
|
||||
date["%s_status" % period] = status_name(date[period])
|
||||
for period in ("morning", "afternoon"):
|
||||
if date[period] == "COMPLETE":
|
||||
date["color"] = "orange"
|
||||
date["%s_status" % period] = _("Complete")
|
||||
else:
|
||||
date["%s_status" % period] = _("Available")
|
||||
if date["morning"] == "COMPLETE" and date["afternoon"] == "COMPLETE":
|
||||
date["disabled"] = True
|
||||
date["color"] = "red"
|
||||
if date["lunch"] == "CLOSE":
|
||||
date["lunch_status"] = _("Complete")
|
||||
else:
|
||||
date["lunch_status"] = _("Available")
|
||||
if date[period] in ("COMPLETE", "CLOSE"):
|
||||
if date["status"] == "partially-open":
|
||||
date["disabled"] = True
|
||||
date["status"] = "closed"
|
||||
else:
|
||||
date["status"] = "partially-open"
|
||||
date["details"] = (
|
||||
_(
|
||||
"Morning (%(morning_status)s), Lunch (%(lunch_status)s), Afternoon (%(afternoon_status)s)"
|
||||
|
|
|
@ -273,6 +273,17 @@ def test_get_site_calendar(mocked_get, app, setup, freezer):
|
|||
assert mocked_get.call_args[1]["params"]["end_date"] == "2021-04-23"
|
||||
assert response.json["err"] == 0
|
||||
assert len(response.json["data"]) == 3
|
||||
|
||||
assert response.json["data"][0]["disabled"] is False
|
||||
assert response.json["data"][1]["disabled"] is False
|
||||
assert response.json["data"][2]["disabled"] is True
|
||||
assert response.json["data"][0]["status"] == "open"
|
||||
assert response.json["data"][1]["status"] == "partially-open"
|
||||
assert response.json["data"][2]["status"] == "closed"
|
||||
assert response.json["data"][0]["details"] == "Morning (available), Lunch (closed), Afternoon (available)"
|
||||
assert response.json["data"][1]["details"] == "Morning (available), Lunch (open), Afternoon (complete)"
|
||||
assert response.json["data"][2]["details"] == "Morning (complete), Lunch (closed), Afternoon (complete)"
|
||||
|
||||
response = app.get(endpoint + "?site=SD29b&start_date=2021-01-22")
|
||||
assert mocked_get.call_args[1]["params"]["start_date"] == "2021-01-22"
|
||||
assert mocked_get.call_args[1]["params"]["end_date"] == "2021-04-24"
|
||||
|
|
Loading…
Reference in New Issue