0001-isere_ens-improve-status-calculation-50619.patch
passerelle/contrib/isere_ens/models.py | ||
---|---|---|
333 | 333 |
} |
334 | 334 |
dates = self.request("api/1.0.0/site/" + site + "/calendar", params=params) |
335 | 335 | |
336 |
def status_name(status): |
|
337 |
return { |
|
338 |
"AVAILABLE": _("available"), |
|
339 |
"COMPLETE": _("complete"), |
|
340 |
"OVERBOOKING": _("overbooking"), |
|
341 |
"OPEN": _("open"), |
|
342 |
"CLOSE": _("closed"), |
|
343 |
}.get(status) or _("unknown") |
|
344 | ||
336 | 345 |
for date in dates: |
337 | 346 |
date["id"] = site + ":" + date["date"] |
338 | 347 |
date["site"] = site |
339 | 348 |
date_ = datetime.datetime.strptime(date["date"], "%Y-%m-%d").date() |
340 | 349 |
date["date_format"] = date_format(date_, format="DATE_FORMAT") |
341 | 350 |
date["disabled"] = False |
342 |
date["color"] = "green" |
|
351 |
date["status"] = "open" |
|
352 |
for period in ("morning", "lunch", "afternoon"): |
|
353 |
date["%s_status" % period] = status_name(date[period]) |
|
343 | 354 |
for period in ("morning", "afternoon"): |
344 |
if date[period] == "COMPLETE": |
|
345 |
date["color"] = "orange" |
|
346 |
date["%s_status" % period] = _("Complete") |
|
347 |
else: |
|
348 |
date["%s_status" % period] = _("Available") |
|
349 |
if date["morning"] == "COMPLETE" and date["afternoon"] == "COMPLETE": |
|
350 |
date["disabled"] = True |
|
351 |
date["color"] = "red" |
|
352 |
if date["lunch"] == "CLOSE": |
|
353 |
date["lunch_status"] = _("Complete") |
|
354 |
else: |
|
355 |
date["lunch_status"] = _("Available") |
|
355 |
if date[period] in ("COMPLETE", "CLOSE"): |
|
356 |
if date["status"] == "partially-open": |
|
357 |
date["disabled"] = True |
|
358 |
date["status"] = "closed" |
|
359 |
else: |
|
360 |
date["status"] = "partially-open" |
|
356 | 361 |
date["details"] = ( |
357 | 362 |
_( |
358 | 363 |
"Morning (%(morning_status)s), Lunch (%(lunch_status)s), Afternoon (%(afternoon_status)s)" |
tests/test_isere_ens.py | ||
---|---|---|
273 | 273 |
assert mocked_get.call_args[1]["params"]["end_date"] == "2021-04-23" |
274 | 274 |
assert response.json["err"] == 0 |
275 | 275 |
assert len(response.json["data"]) == 3 |
276 | ||
277 |
assert response.json["data"][0]["disabled"] is False |
|
278 |
assert response.json["data"][1]["disabled"] is False |
|
279 |
assert response.json["data"][2]["disabled"] is True |
|
280 |
assert response.json["data"][0]["status"] == "open" |
|
281 |
assert response.json["data"][1]["status"] == "partially-open" |
|
282 |
assert response.json["data"][2]["status"] == "closed" |
|
283 |
assert response.json["data"][0]["details"] == "Morning (available), Lunch (closed), Afternoon (available)" |
|
284 |
assert response.json["data"][1]["details"] == "Morning (available), Lunch (open), Afternoon (complete)" |
|
285 |
assert response.json["data"][2]["details"] == "Morning (complete), Lunch (closed), Afternoon (complete)" |
|
286 | ||
276 | 287 |
response = app.get(endpoint + "?site=SD29b&start_date=2021-01-22") |
277 | 288 |
assert mocked_get.call_args[1]["params"]["start_date"] == "2021-01-22" |
278 | 289 |
assert mocked_get.call_args[1]["params"]["end_date"] == "2021-04-24" |
279 |
- |