diff --git a/netbox/templates/account/profile.html b/netbox/templates/account/profile.html index e5a2c3d78..f494df910 100644 --- a/netbox/templates/account/profile.html +++ b/netbox/templates/account/profile.html @@ -35,15 +35,7 @@ {% trans "Last Login" %} - - {% if request.user.last_login %} - - {{ request.user.last_login|timesince }} {% trans "ago" %} - - {% else %} - {{ ''|placeholder }} - {% endif %} - + {{ request.user.last_login|isodatetime:"minutes"|placeholder }} {% trans "Superuser" %} diff --git a/netbox/templates/account/token.html b/netbox/templates/account/token.html index fd6aa11e0..7001d6a14 100644 --- a/netbox/templates/account/token.html +++ b/netbox/templates/account/token.html @@ -49,16 +49,7 @@ {% trans "Last used" %} - - {% if object.last_used %} - - {{ object.last_used|timesince }} - - {% trans "ago" %} - {% else %} - {{ ''|placeholder }} - {% endif %} - + {{ object.last_used|isodatetime|placeholder }} {% trans "Allowed IPs" %} diff --git a/netbox/templates/extras/htmx/script_result.html b/netbox/templates/extras/htmx/script_result.html index d36936daf..0545e2bd5 100644 --- a/netbox/templates/extras/htmx/script_result.html +++ b/netbox/templates/extras/htmx/script_result.html @@ -1,4 +1,3 @@ -{% load humanize %} {% load helpers %} {% load log_levels %} {% load i18n %} @@ -8,7 +7,7 @@ {% if job.started %} {% trans "Started" %}: {{ job.started|isodatetime }} {% elif job.scheduled %} - {% trans "Scheduled for" %}: {{ job.scheduled|isodatetime }} ({{ job.scheduled|naturaltime }}) + {% trans "Scheduled for" %}: {{ job.scheduled|isodatetime }} {% else %} {% trans "Created" %}: {{ job.created|isodatetime }} {% endif %} diff --git a/netbox/templates/generic/object.html b/netbox/templates/generic/object.html index 0b9aca7ea..112368870 100644 --- a/netbox/templates/generic/object.html +++ b/netbox/templates/generic/object.html @@ -51,11 +51,7 @@ Context: {% trans "Created" %} {{ object.created|isodatetime:"minutes" }} {% if object.last_updated %} · - {% trans "Updated" %} - - {{ object.last_updated|timesince }} - - {% trans "ago" %} + {% trans "Updated" %} {{ object.last_updated|isodatetime:"minutes" }} {% endif %} {% endblock subtitle %} diff --git a/netbox/templates/users/token.html b/netbox/templates/users/token.html index d576c1811..968c1d421 100644 --- a/netbox/templates/users/token.html +++ b/netbox/templates/users/token.html @@ -1,6 +1,6 @@ {% extends 'generic/object.html' %} -{% load i18n %} {% load helpers %} +{% load i18n %} {% load render_table from django_tables2 %} {% block title %}{% trans "Token" %} {{ object }}{% endblock %} @@ -37,20 +37,11 @@ {% trans "Expires" %} - {{ object.expires|isodatetime }} + {{ object.expires|isodatetime|placeholder }} {% trans "Last used" %} - - {% if object.last_used %} - - {{ object.last_used|timesince }} - - {% trans "ago" %} - {% else %} - {{ ''|placeholder }} - {% endif %} - + {{ object.last_used|isodatetime|placeholder }} {% trans "Allowed IPs" %} diff --git a/netbox/templates/users/user.html b/netbox/templates/users/user.html index a408025c3..c708fb963 100644 --- a/netbox/templates/users/user.html +++ b/netbox/templates/users/user.html @@ -31,15 +31,7 @@ {% trans "Last Login" %} - - {% if object.last_login %} - - {{ object.last_login|timesince }} {% trans "ago" %} - - {% else %} - {{ ''|placeholder }} - {% endif %} - + {{ object.last_login|isodatetime:"minutes"|placeholder }} {% trans "Active" %} diff --git a/netbox/utilities/templatetags/builtins/filters.py b/netbox/utilities/templatetags/builtins/filters.py index 50c525543..842f7b14a 100644 --- a/netbox/utilities/templatetags/builtins/filters.py +++ b/netbox/utilities/templatetags/builtins/filters.py @@ -5,6 +5,7 @@ import re import yaml from django import template from django.contrib.contenttypes.models import ContentType +from django.contrib.humanize.templatetags.humanize import naturaltime from django.utils.html import escape from django.utils.safestring import mark_safe from markdown import markdown @@ -214,10 +215,12 @@ def render_yaml(value): @register.filter() def isodate(value): if type(value) is datetime.date: - return value.isoformat() - if type(value) is datetime.datetime: - return value.date().isoformat() - return '' + text = value.isoformat() + elif type(value) is datetime.datetime: + text = value.date().isoformat() + else: + return '' + return mark_safe(f'{text}') @register.filter() @@ -232,5 +235,7 @@ def isotime(value, spec='seconds'): @register.filter() def isodatetime(value, spec='seconds'): if type(value) is datetime.datetime: - return f'{isodate(value)} {isotime(value, spec=spec)}' - return '' + text = f'{isodate(value)} {isotime(value, spec=spec)}' + else: + return '' + return mark_safe(f'{text}')