diff --git a/netbox/templates/account/profile.html b/netbox/templates/account/profile.html index 53122168f..e5a2c3d78 100644 --- a/netbox/templates/account/profile.html +++ b/netbox/templates/account/profile.html @@ -31,11 +31,19 @@ {% trans "Account Created" %} - {{ request.user.date_joined|annotated_date }} + {{ request.user.date_joined|isodate }} {% trans "Last Login" %} - {{ request.user.last_login|annotated_date }} + + {% if request.user.last_login %} + + {{ request.user.last_login|timesince }} {% trans "ago" %} + + {% else %} + {{ ''|placeholder }} + {% endif %} + {% trans "Superuser" %} diff --git a/netbox/templates/account/token.html b/netbox/templates/account/token.html index c65d80cb9..fd6aa11e0 100644 --- a/netbox/templates/account/token.html +++ b/netbox/templates/account/token.html @@ -41,15 +41,24 @@ {% trans "Created" %} - {{ object.created|annotated_date }} + {{ object.created|isodatetime }} {% trans "Expires" %} - {{ object.expires|placeholder }} + {{ object.expires|isodatetime|placeholder }} {% trans "Last used" %} - {{ object.last_used|placeholder }} + + {% if object.last_used %} + + {{ object.last_used|timesince }} + + {% trans "ago" %} + {% else %} + {{ ''|placeholder }} + {% endif %} + {% trans "Allowed IPs" %} diff --git a/netbox/templates/circuits/circuit.html b/netbox/templates/circuits/circuit.html index 69284f9b4..fb3d8185a 100644 --- a/netbox/templates/circuits/circuit.html +++ b/netbox/templates/circuits/circuit.html @@ -45,11 +45,11 @@ {% trans "Install Date" %} - {{ object.install_date|annotated_date|placeholder }} + {{ object.install_date|isodate|placeholder }} {% trans "Termination Date" %} - {{ object.termination_date|annotated_date|placeholder }} + {{ object.termination_date|isodate|placeholder }} {% trans "Commit Rate" %} diff --git a/netbox/templates/core/configrevision.html b/netbox/templates/core/configrevision.html index 34ee6bda9..1be674ab4 100644 --- a/netbox/templates/core/configrevision.html +++ b/netbox/templates/core/configrevision.html @@ -23,7 +23,7 @@ {% block subtitle %} {% if object.created %}
- {% trans "Created" %} {{ object.created|annotated_date }} + {% trans "Created" %} {{ object.created|isodatetime }}
{% endif %} {% endblock subtitle %} diff --git a/netbox/templates/core/configrevision_restore.html b/netbox/templates/core/configrevision_restore.html index 0097f93e5..ee0ce1ebe 100644 --- a/netbox/templates/core/configrevision_restore.html +++ b/netbox/templates/core/configrevision_restore.html @@ -9,7 +9,7 @@ {% block subtitle %}
- {% trans "Created" %} {{ object.created|annotated_date }} + {% trans "Created" %} {{ object.created|isodatetime }}
{% endblock %} diff --git a/netbox/templates/core/job.html b/netbox/templates/core/job.html index 0851fa114..1c67791b8 100644 --- a/netbox/templates/core/job.html +++ b/netbox/templates/core/job.html @@ -49,12 +49,12 @@ - + - + - +
{% trans "Created" %}{{ object.created|annotated_date }}{{ object.created|isodatetime }}
{% trans "Scheduled" %} - {{ object.scheduled|annotated_date|placeholder }} + {{ object.scheduled|isodatetime|placeholder }} {% if object.interval %} ({% blocktrans with interval=object.interval %}every {{ interval }} minutes{% endblocktrans %}) {% endif %} @@ -62,11 +62,11 @@
{% trans "Started" %}{{ object.started|annotated_date|placeholder }}{{ object.started|isodatetime|placeholder }}
{% trans "Completed" %}{{ object.completed|annotated_date|placeholder }}{{ object.completed|isodatetime|placeholder }}
diff --git a/netbox/templates/core/rq_task.html b/netbox/templates/core/rq_task.html index 68829e258..d84bc5a3f 100644 --- a/netbox/templates/core/rq_task.html +++ b/netbox/templates/core/rq_task.html @@ -13,7 +13,7 @@ {% block subtitle %}
- {% trans "Created" %} {{ job.created_at|annotated_date }} + {% trans "Created" %} {{ job.created_at|isodatetime }}
{% endblock subtitle %} @@ -71,11 +71,11 @@ {% trans "Created" %} - {{ job.created_at|annotated_date }} + {{ job.created_at|isodatetime }} {% trans "Queued" %} - {{ job.enqueued_at|annotated_date }} + {{ job.enqueued_at|isodatetime }} {% trans "Status" %} diff --git a/netbox/templates/core/rq_worker.html b/netbox/templates/core/rq_worker.html index d44f00b66..4dc4bf91d 100644 --- a/netbox/templates/core/rq_worker.html +++ b/netbox/templates/core/rq_worker.html @@ -11,7 +11,7 @@ {% block subtitle %}
- {% trans "Created" %} {{ worker.birth_date|annotated_date }} + {% trans "Created" %} {{ worker.birth_date|isodatetime }}
{% endblock subtitle %} @@ -49,7 +49,7 @@ {% trans "Birth" %} - {{ worker.birth_date|annotated_date }} + {{ worker.birth_date|isodatetime }} {% trans "Queues" %} diff --git a/netbox/templates/extras/htmx/script_result.html b/netbox/templates/extras/htmx/script_result.html index e532e07e1..d36936daf 100644 --- a/netbox/templates/extras/htmx/script_result.html +++ b/netbox/templates/extras/htmx/script_result.html @@ -6,11 +6,11 @@

{% if job.started %} - {% trans "Started" %}: {{ job.started|annotated_date }} + {% trans "Started" %}: {{ job.started|isodatetime }} {% elif job.scheduled %} - {% trans "Scheduled for" %}: {{ job.scheduled|annotated_date }} ({{ job.scheduled|naturaltime }}) + {% trans "Scheduled for" %}: {{ job.scheduled|isodatetime }} ({{ job.scheduled|naturaltime }}) {% else %} - {% trans "Created" %}: {{ job.created|annotated_date }} + {% trans "Created" %}: {{ job.created|isodatetime }} {% endif %} {% if job.completed %} {% trans "Duration" %}: {{ job.duration }} diff --git a/netbox/templates/extras/journalentry.html b/netbox/templates/extras/journalentry.html index 7a4c06b25..29c0a263c 100644 --- a/netbox/templates/extras/journalentry.html +++ b/netbox/templates/extras/journalentry.html @@ -20,7 +20,7 @@ {% trans "Created" %} - {{ object.created|annotated_date }} + {{ object.created|isodatetime:"minutes" }} {% trans "Created By" %} diff --git a/netbox/templates/extras/objectchange.html b/netbox/templates/extras/objectchange.html index 110aeeb99..0aee6185b 100644 --- a/netbox/templates/extras/objectchange.html +++ b/netbox/templates/extras/objectchange.html @@ -29,9 +29,7 @@ - + diff --git a/netbox/templates/extras/script_list.html b/netbox/templates/extras/script_list.html index dc7a168f8..7ce5ca6eb 100644 --- a/netbox/templates/extras/script_list.html +++ b/netbox/templates/extras/script_list.html @@ -67,7 +67,7 @@ {% if last_job %} - + diff --git a/netbox/templates/users/token.html b/netbox/templates/users/token.html index 2d1858323..d576c1811 100644 --- a/netbox/templates/users/token.html +++ b/netbox/templates/users/token.html @@ -33,15 +33,24 @@ - + - + - + diff --git a/netbox/templates/users/user.html b/netbox/templates/users/user.html index 0dd12fb52..a408025c3 100644 --- a/netbox/templates/users/user.html +++ b/netbox/templates/users/user.html @@ -27,11 +27,19 @@ - + - + diff --git a/netbox/utilities/templates/builtins/customfield_value.html b/netbox/utilities/templates/builtins/customfield_value.html index 6091fd411..462e62b86 100644 --- a/netbox/utilities/templates/builtins/customfield_value.html +++ b/netbox/utilities/templates/builtins/customfield_value.html @@ -9,9 +9,9 @@ {% elif customfield.type == 'boolean' and value == False %} {% checkmark value false="False" %} {% elif customfield.type == 'date' and value %} - {{ value|annotated_date }} + {{ value|isodate }} {% elif customfield.type == 'datetime' and value %} - {{ value|annotated_date }} + {{ value|isodate }} {{ value|isodatetime }} {% elif customfield.type == 'url' and value %} {{ value|truncatechars:70 }} {% elif customfield.type == 'json' and value %} diff --git a/netbox/utilities/templatetags/builtins/filters.py b/netbox/utilities/templatetags/builtins/filters.py index 3d7cfec2f..50c525543 100644 --- a/netbox/utilities/templatetags/builtins/filters.py +++ b/netbox/utilities/templatetags/builtins/filters.py @@ -20,6 +20,9 @@ __all__ = ( 'content_type', 'content_type_id', 'fgcolor', + 'isodate', + 'isodatetime', + 'isotime', 'linkify', 'meta', 'placeholder', @@ -202,3 +205,32 @@ def render_yaml(value): {{ data_dict|yaml }} """ return yaml.dump(json.loads(json.dumps(value))) + + +# +# Time & date +# + +@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 '' + + +@register.filter() +def isotime(value, spec='seconds'): + if type(value) is datetime.time: + return value.isoformat(timespec=spec) + if type(value) is datetime.datetime: + return value.time().isoformat(timespec=spec) + return '' + + +@register.filter() +def isodatetime(value, spec='seconds'): + if type(value) is datetime.datetime: + return f'{isodate(value)} {isotime(value, spec=spec)}' + return ''
{% trans "Time" %} - {{ object.time|annotated_date }} - {{ object.time|isodatetime }}
{% trans "User" %}{{ script.description|markdown|placeholder }} - {{ last_job.created|annotated_date }} + {{ last_job.created|isodatetime }} {% badge last_job.get_status_display last_job.get_status_color %} diff --git a/netbox/templates/extras/script_result.html b/netbox/templates/extras/script_result.html index 276e2562a..ee1127c8a 100644 --- a/netbox/templates/extras/script_result.html +++ b/netbox/templates/extras/script_result.html @@ -17,7 +17,7 @@ - + diff --git a/netbox/templates/generic/object.html b/netbox/templates/generic/object.html index f111c20ef..0b9aca7ea 100644 --- a/netbox/templates/generic/object.html +++ b/netbox/templates/generic/object.html @@ -48,10 +48,14 @@ Context: {% block subtitle %}
- {% trans "Created" %} {{ object.created|annotated_date }} + {% trans "Created" %} {{ object.created|isodatetime:"minutes" }} {% if object.last_updated %} · - {% trans "Updated" %} {{ object.last_updated|timesince }} {% trans "ago" %} + {% trans "Updated" %} + + {{ object.last_updated|timesince }} + + {% trans "ago" %} {% endif %}
{% endblock subtitle %} diff --git a/netbox/templates/ipam/aggregate.html b/netbox/templates/ipam/aggregate.html index 6819e5448..a6415463e 100644 --- a/netbox/templates/ipam/aggregate.html +++ b/netbox/templates/ipam/aggregate.html @@ -37,7 +37,7 @@
{% trans "Date Added" %}{{ object.date_added|annotated_date|placeholder }}{{ object.date_added|isodate|placeholder }}
{% trans "Description" %}
{% trans "Created" %}{{ object.created|annotated_date }}{{ object.created|isodatetime }}
{% trans "Expires" %}{{ object.expires|placeholder }}{{ object.expires|isodatetime }}
{% trans "Last used" %}{{ object.last_used|placeholder }} + {% if object.last_used %} + + {{ object.last_used|timesince }} + + {% trans "ago" %} + {% else %} + {{ ''|placeholder }} + {% endif %} +
{% trans "Allowed IPs" %}
{% trans "Account Created" %}{{ object.date_joined|annotated_date }}{{ object.date_joined|isodate }}
{% trans "Last Login" %}{{ object.last_login|annotated_date }} + {% if object.last_login %} + + {{ object.last_login|timesince }} {% trans "ago" %} + + {% else %} + {{ ''|placeholder }} + {% endif %} +
{% trans "Active" %}