From 7c074fdc67155b8eb0eb5f7c664753c30239f501 Mon Sep 17 00:00:00 2001
From: Helge Jung <hej@c3pb.de>
Date: Thu, 19 Dec 2024 00:59:31 +0100
Subject: [PATCH] backoffice: fix SoS display ordering

closes #602
---
 .../backoffice/event/components/list_content.html         | 8 ++++++--
 src/backoffice/templatetags/c3assemblies.py               | 7 +++++--
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/backoffice/templates/backoffice/event/components/list_content.html b/src/backoffice/templates/backoffice/event/components/list_content.html
index 725a8ffd5..b43ba5382 100644
--- a/src/backoffice/templates/backoffice/event/components/list_content.html
+++ b/src/backoffice/templates/backoffice/event/components/list_content.html
@@ -36,8 +36,12 @@
       <tbody>
         {% for event in events %}
           <tr class="{% if not event.is_public %}text-muted{% endif %}">
-            <td>{{ event.schedule_start }}</td>
-            <td>{{ event.schedule_duration }}</td>
+            <td data-order="{{ event.schedule_start|date:"U" }}">
+              <abbr title="{{ event.schedule_start|date:"c" }}">{{ event.schedule_start|conference_time:conference }}</abbr>
+            </td>
+            <td data-order="{{ event.schedule_duration.total_seconds|default:"0" }}">
+              {{ event.schedule_duration|naturaltimespan }}
+            </td>
             <td>
               {% if user_list and event.kind == 'sos' %}
                 <a href="{% url 'backoffice:sos-edit' pk=event.pk %}">{{ event.name }}</a>
diff --git a/src/backoffice/templatetags/c3assemblies.py b/src/backoffice/templatetags/c3assemblies.py
index 5539f5fcc..b18a74875 100644
--- a/src/backoffice/templatetags/c3assemblies.py
+++ b/src/backoffice/templatetags/c3assemblies.py
@@ -45,8 +45,11 @@ def get_language_item(dictionary):
 
 
 @register.filter
-def naturaltimespan(x):
-    assert isinstance(x, timedelta), str.format('Expected a timedelta object: {0!r}', x)
+def naturaltimespan(x: timedelta) -> str or None:
+    if x is None:
+        return ''
+    if not isinstance(x, timedelta):
+        raise ValueError('Expected a timedelta object.')
 
     seconds = x.total_seconds()
 
-- 
GitLab