Support future times with timedeltashort tag (#403)

pull/405/head
Michael Manfre 2023-01-13 12:54:02 -05:00 zatwierdzone przez GitHub
rodzic 18b50ce0e6
commit fc8b5be4a0
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 12 dodań i 3 usunięć

Wyświetl plik

@ -14,10 +14,11 @@ def timedeltashort(value: datetime.datetime):
"""
if not value:
return ""
# TODO: Handle things in the future properly
delta = timezone.now() - value
seconds = int(delta.total_seconds())
days = delta.days
sign = "-" if seconds < 0 else ""
seconds = abs(seconds)
days = abs(delta.days)
if seconds < 60:
text = f"{seconds:0n}s"
elif seconds < 60 * 60:
@ -31,7 +32,7 @@ def timedeltashort(value: datetime.datetime):
else:
years = max(days // 365.25, 1)
text = f"{years:0n}y"
return text
return sign + text
@register.simple_tag(takes_context=True)

Wyświetl plik

@ -22,3 +22,11 @@ def test_timedeltashort():
assert timedeltashort(value - timedelta(days=364)) == "364d"
assert timedeltashort(value - timedelta(days=365)) == "1y"
assert timedeltashort(value - timedelta(days=366)) == "1y"
assert timedeltashort(value + timedelta(seconds=2.1)) == "-2s"
assert timedeltashort(value + timedelta(minutes=2, seconds=1)) == "-2m"
assert timedeltashort(value + timedelta(hours=2, seconds=1)) == "-2h"
assert timedeltashort(value + timedelta(days=2)) == "-2d"
assert timedeltashort(value + timedelta(days=364)) == "-364d"
assert timedeltashort(value + timedelta(days=365)) == "-1y"
assert timedeltashort(value + timedelta(days=366)) == "-1y"