summaryrefslogtreecommitdiffstats
path: root/activities/templatetags
diff options
context:
space:
mode:
Diffstat (limited to 'activities/templatetags')
-rw-r--r--activities/templatetags/__init__.py0
-rw-r--r--activities/templatetags/activity_tags.py33
2 files changed, 33 insertions, 0 deletions
diff --git a/activities/templatetags/__init__.py b/activities/templatetags/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/activities/templatetags/__init__.py
diff --git a/activities/templatetags/activity_tags.py b/activities/templatetags/activity_tags.py
new file mode 100644
index 0000000..cbbae57
--- /dev/null
+++ b/activities/templatetags/activity_tags.py
@@ -0,0 +1,33 @@
+import datetime
+
+from django import template
+from django.utils import timezone
+
+register = template.Library()
+
+
+@register.filter
+def timedeltashort(value: datetime.datetime):
+ """
+ A more compact version of timesince
+ """
+ if not value:
+ return ""
+ # TODO: Handle things in the future properly
+ delta = timezone.now() - value
+ seconds = int(delta.total_seconds())
+ days = delta.days
+ if seconds < 60:
+ text = f"{seconds:0n}s"
+ elif seconds < 60 * 60:
+ minutes = seconds // 60
+ text = f"{minutes:0n}m"
+ elif seconds < 60 * 60 * 24:
+ hours = seconds // (60 * 60)
+ text = f"{hours:0n}h"
+ elif days < 365:
+ text = f"{days:0n}h"
+ else:
+ years = days // 365.25
+ text = f"{years:0n}y"
+ return text