mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-15 19:01:04 -04:00
Implement sorting
Shows the broadcasts with the longest time still to live at the top. At the moment this will be the same as the newest broadcasts, so we may want to revisit this sort order when we have broadcasts of variable duration. For no-longer-live broadcasts we show the most-recently-finished at the top, whether it finished naturally or was cancelled.
This commit is contained in:
@@ -36,6 +36,13 @@ class BroadcastMessage(JSONModel):
|
||||
|
||||
libraries = broadcast_area_libraries
|
||||
|
||||
def __lt__(self, other):
|
||||
return (
|
||||
self.cancelled_at or self.finishes_at
|
||||
) < (
|
||||
other.cancelled_at or other.finishes_at
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def create(cls, *, service_id, template_id):
|
||||
return cls(broadcast_message_api_client.create_broadcast_message(
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
{% macro broadcast_table(broadcasts, empty_message) %}
|
||||
<div class='dashboard-table ajax-block-container'>
|
||||
{% call(item, row_number) list_table(
|
||||
broadcasts,
|
||||
broadcasts|sort|reverse|list,
|
||||
caption="Live broadcasts",
|
||||
caption_visible=False,
|
||||
empty_message=empty_message,
|
||||
|
||||
@@ -83,8 +83,8 @@ def test_broadcast_dashboard(
|
||||
assert [
|
||||
normalize_spaces(row.text) for row in page.select('table')[1].select('tbody tr')
|
||||
] == [
|
||||
'Example template To England and Scotland Finished yesterday at 8:20pm',
|
||||
'Example template To England and Scotland Stopped 10 February at 2:20am',
|
||||
'Example template To England and Scotland Finished yesterday at 8:20pm',
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user