Skip to content

Commit

Permalink
update logic based on all_day flag [CPCN-815] (#916)
Browse files Browse the repository at this point in the history
* update logic based on all_day flag [CPCN-815]

* handle multiday events with all_day flag
  • Loading branch information
devketanpro authored May 28, 2024
1 parent 6845cca commit 3222e79
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
10 changes: 7 additions & 3 deletions newsroom/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,10 +196,14 @@ def date_short(datetime):
def get_agenda_dates(agenda: Dict[str, Any], date_paranthesis: bool = False) -> str:
start = parse_date_str(agenda.get("dates", {}).get("start"))
end = parse_date_str(agenda.get("dates", {}).get("end"))
all_day = agenda.get("dates", {}).get("all_day", False)

if start.time() == datetime.min.time() or end.time() == datetime.min.time():
# if start time or end time is not present
return "{}".format(date_short(start))
if all_day:
return (
"{}".format(date_short(start))
if start.date() == end.date()
else "{} - {}".format(date_short(start), date_short(end))
)

if start + timedelta(minutes=DAY_IN_MINUTES) < end:
# Multi day event
Expand Down
17 changes: 14 additions & 3 deletions tests/core/test_agenda.py
Original file line number Diff line number Diff line change
Expand Up @@ -582,20 +582,31 @@ def test_get_agenda_dates():

agenda = {
"dates": {
"end": datetime.strptime("2018-05-30T06:00:00+0000", "%Y-%m-%dT%H:%M:%S+0000").replace(tzinfo=pytz.UTC),
"start": datetime.strptime("2018-05-30+0000", "%Y-%m-%d+0000").replace(tzinfo=pytz.UTC),
"end": datetime.strptime("2018-05-30T00:00:00+0000", "%Y-%m-%dT%H:%M:%S+0000").replace(tzinfo=pytz.UTC),
"start": datetime.strptime("2018-05-30T00:00:00+0000", "%Y-%m-%dT%H:%M:%S+0000").replace(tzinfo=pytz.UTC),
"all_day": True,
},
}
assert get_agenda_dates(agenda) == "30/05/2018"

agenda = {
"dates": {
"end": datetime.strptime("2018-05-30+0000", "%Y-%m-%d+0000").replace(tzinfo=pytz.UTC),
"end": datetime.strptime("2018-05-30T08:00:00+0000", "%Y-%m-%dT%H:%M:%S+0000").replace(tzinfo=pytz.UTC),
"start": datetime.strptime("2018-05-30T06:00:00+0000", "%Y-%m-%dT%H:%M:%S+0000").replace(tzinfo=pytz.UTC),
"all_day": True,
},
}
assert get_agenda_dates(agenda) == "30/05/2018"

agenda = {
"dates": {
"end": datetime.strptime("2018-05-30T00:00:00+0000", "%Y-%m-%dT%H:%M:%S+0000").replace(tzinfo=pytz.UTC),
"start": datetime.strptime("2018-05-27T04:00:00+0000", "%Y-%m-%dT%H:%M:%S+0000").replace(tzinfo=pytz.UTC),
"all_day": True,
},
}
assert get_agenda_dates(agenda) == "27/05/2018 - 30/05/2018"


def test_filter_agenda_by_coverage_status(client):
client.post("/push", data=json.dumps(test_planning), content_type="application/json")
Expand Down

0 comments on commit 3222e79

Please sign in to comment.