From 34b24a0dcb044cb755e201ad1a83253d0690e78e Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Sun, 13 Nov 2022 16:14:38 -0700 Subject: More UI! --- activities/templatetags/__init__.py | 0 activities/templatetags/activity_tags.py | 33 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 activities/templatetags/__init__.py create mode 100644 activities/templatetags/activity_tags.py (limited to 'activities/templatetags') diff --git a/activities/templatetags/__init__.py b/activities/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 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 -- cgit v1.2.3