mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-19 05:53:51 -04:00
Sort broadcasts by start time
For emails and text messages we sort by the time the user (or API) sent them. This makes sense for broadcasts too, since most users will receive the alert within seconds of it being broadcast. For alerts that haven’t started yet we can sort by `updated_at`, which is when the user preparing the broadcast submitted it for approval.
This commit is contained in:
@@ -649,10 +649,12 @@ def broadcast_message_json(
|
||||
starts_at=None,
|
||||
finishes_at=None,
|
||||
cancelled_at=None,
|
||||
updated_at=None,
|
||||
approved_by_id=None,
|
||||
cancelled_by_id=None,
|
||||
areas=None,
|
||||
content=None,
|
||||
template_name='Example template',
|
||||
):
|
||||
return {
|
||||
'id': id_,
|
||||
@@ -661,7 +663,7 @@ def broadcast_message_json(
|
||||
|
||||
'template_id': template_id,
|
||||
'template_version': 123,
|
||||
'template_name': 'Example template',
|
||||
'template_name': template_name,
|
||||
'content': content or 'This is a test',
|
||||
|
||||
'personalisation': {},
|
||||
@@ -677,7 +679,7 @@ def broadcast_message_json(
|
||||
'created_at': None,
|
||||
'approved_at': None,
|
||||
'cancelled_at': cancelled_at,
|
||||
'updated_at': None,
|
||||
'updated_at': updated_at,
|
||||
|
||||
'created_by_id': created_by_id,
|
||||
'approved_by_id': approved_by_id,
|
||||
|
||||
@@ -305,8 +305,10 @@ def test_broadcast_dashboard(
|
||||
assert [
|
||||
normalize_spaces(row.text) for row in page.select('table')[0].select('tbody tr')
|
||||
] == [
|
||||
'Half an hour ago This is a test England Scotland Waiting for approval',
|
||||
'Hour and a half ago This is a test England Scotland Waiting for approval',
|
||||
'Example template This is a test England Scotland Live since today at 2:20am',
|
||||
'Example template This is a test England Scotland Waiting for approval',
|
||||
'Example template This is a test England Scotland Live since today at 1:20am',
|
||||
]
|
||||
|
||||
|
||||
@@ -353,8 +355,8 @@ def test_previous_broadcasts_page(
|
||||
assert [
|
||||
normalize_spaces(row.text) for row in page.select('table')[0].select('tbody tr')
|
||||
] == [
|
||||
'Example template This is a test England Scotland Broadcast yesterday at 2:20am',
|
||||
'Example template This is a test England Scotland Broadcast yesterday at 2:20pm',
|
||||
'Example template This is a test England Scotland Broadcast yesterday at 2:20am',
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -4309,21 +4309,39 @@ def mock_get_broadcast_messages(
|
||||
def _get(service_id):
|
||||
partial_json = partial(
|
||||
broadcast_message_json,
|
||||
id_=fake_uuid,
|
||||
service_id=service_id,
|
||||
template_id=fake_uuid,
|
||||
created_by_id=fake_uuid,
|
||||
)
|
||||
return [
|
||||
partial_json(
|
||||
id_=uuid4(),
|
||||
status='draft',
|
||||
),
|
||||
partial_json(
|
||||
id_=uuid4(),
|
||||
status='pending-approval',
|
||||
updated_at=(
|
||||
datetime.utcnow() - timedelta(minutes=30)
|
||||
).isoformat(),
|
||||
template_name='Half an hour ago',
|
||||
finishes_at=None,
|
||||
),
|
||||
partial_json(
|
||||
id_=uuid4(),
|
||||
status='pending-approval',
|
||||
updated_at=(
|
||||
datetime.utcnow() - timedelta(hours=1, minutes=30)
|
||||
).isoformat(),
|
||||
template_name='Hour and a half ago',
|
||||
finishes_at=None,
|
||||
),
|
||||
partial_json(
|
||||
id_=uuid4(),
|
||||
status='broadcasting',
|
||||
updated_at=(
|
||||
datetime.utcnow()
|
||||
).isoformat(),
|
||||
starts_at=(
|
||||
datetime.utcnow()
|
||||
).isoformat(),
|
||||
@@ -4332,6 +4350,20 @@ def mock_get_broadcast_messages(
|
||||
).isoformat(),
|
||||
),
|
||||
partial_json(
|
||||
id_=uuid4(),
|
||||
status='broadcasting',
|
||||
updated_at=(
|
||||
datetime.utcnow() - timedelta(hours=1)
|
||||
).isoformat(),
|
||||
starts_at=(
|
||||
datetime.utcnow() - timedelta(hours=1)
|
||||
).isoformat(),
|
||||
finishes_at=(
|
||||
datetime.utcnow() + timedelta(hours=24)
|
||||
).isoformat(),
|
||||
),
|
||||
partial_json(
|
||||
id_=uuid4(),
|
||||
status='completed',
|
||||
starts_at=(
|
||||
datetime.utcnow() - timedelta(hours=12)
|
||||
@@ -4341,6 +4373,7 @@ def mock_get_broadcast_messages(
|
||||
).isoformat(),
|
||||
),
|
||||
partial_json(
|
||||
id_=uuid4(),
|
||||
status='cancelled',
|
||||
starts_at=(
|
||||
datetime.utcnow() - timedelta(days=1)
|
||||
|
||||
Reference in New Issue
Block a user