diff --git a/netbox/extras/models/models.py b/netbox/extras/models/models.py index c2cebe1631c..6bce039fc54 100644 --- a/netbox/extras/models/models.py +++ b/netbox/extras/models/models.py @@ -431,9 +431,8 @@ class Meta: verbose_name_plural = 'journal entries' def __str__(self): - created_date = timezone.localdate(self.created) - created_time = timezone.localtime(self.created) - return f"{date_format(created_date)} - {time_format(created_time)} ({self.get_kind_display()})" + created = timezone.localtime(self.created) + return f"{date_format(created, format='SHORT_DATETIME_FORMAT')} ({self.get_kind_display()})" def get_absolute_url(self): return reverse('extras:journalentry', args=[self.pk]) diff --git a/netbox/templates/base.html b/netbox/templates/base.html index 3a169d965c9..32ddc8c264f 100644 --- a/netbox/templates/base.html +++ b/netbox/templates/base.html @@ -67,7 +67,7 @@

Maintenance Mode

{{ settings.HOSTNAME }} (v{{ settings.VERSION }})

-

{% now 'Y-m-d H:i:s T' %}

+

{% annotated_now %} {% now 'T' %}

diff --git a/netbox/templates/circuits/circuit.html b/netbox/templates/circuits/circuit.html index ab8bd739497..5d57cd8d69f 100644 --- a/netbox/templates/circuits/circuit.html +++ b/netbox/templates/circuits/circuit.html @@ -51,7 +51,7 @@ Install Date - {{ object.install_date|placeholder }} + {{ object.install_date|annotated_date|placeholder }} Commit Rate diff --git a/netbox/templates/dcim/rack.html b/netbox/templates/dcim/rack.html index 3bb0084a31b..ada93518f03 100644 --- a/netbox/templates/dcim/rack.html +++ b/netbox/templates/dcim/rack.html @@ -268,7 +268,7 @@ {{ resv.description }}
- {{ resv.user }} · {{ resv.created }} + {{ resv.user }} · {{ resv.created|annotated_date }} {% if perms.dcim.change_rackreservation %} diff --git a/netbox/templates/dcim/site.html b/netbox/templates/dcim/site.html index e0c707a4914..a2ad76d53b7 100644 --- a/netbox/templates/dcim/site.html +++ b/netbox/templates/dcim/site.html @@ -80,7 +80,11 @@ {% if object.time_zone %} {{ object.time_zone }} (UTC {{ object.time_zone|tzoffset }})
- Site time: {% timezone object.time_zone %}{% now "SHORT_DATETIME_FORMAT" %}{% endtimezone %} + Site time: + {% timezone object.time_zone %} + {% annotated_now %} + {% endtimezone %} + {% else %} {% endif %} diff --git a/netbox/templates/extras/journalentry.html b/netbox/templates/extras/journalentry.html index f64741f36ae..6e986be6c7b 100644 --- a/netbox/templates/extras/journalentry.html +++ b/netbox/templates/extras/journalentry.html @@ -25,7 +25,7 @@ Created - {{ object.created }} + {{ object.created|annotated_date }} diff --git a/netbox/templates/extras/objectchange.html b/netbox/templates/extras/objectchange.html index c49cea79ba5..b13491a5573 100644 --- a/netbox/templates/extras/objectchange.html +++ b/netbox/templates/extras/objectchange.html @@ -44,7 +44,7 @@ Time - {{ object.time }} + {{ object.time|annotated_date }} diff --git a/netbox/templates/extras/report.html b/netbox/templates/extras/report.html index 82c3f30426f..642272c8f0a 100644 --- a/netbox/templates/extras/report.html +++ b/netbox/templates/extras/report.html @@ -38,7 +38,7 @@

{{ report.name }}

{% if report.result %} Last run: - {{ report.result.created }} + {{ report.result.created|annotated_date }} {% endif %}
diff --git a/netbox/templates/extras/report_list.html b/netbox/templates/extras/report_list.html index 525a40d12d6..ac8171a9a05 100644 --- a/netbox/templates/extras/report_list.html +++ b/netbox/templates/extras/report_list.html @@ -32,7 +32,7 @@

{{ module|bettertitle }}

{{ report.description|render_markdown|placeholder }} {% if report.result %} - {{ report.result.created }} + {{ report.result.created|annotated_date }} {% else %} Never {% endif %} diff --git a/netbox/templates/extras/report_result.html b/netbox/templates/extras/report_result.html index 3d01ca38e8e..073edc8036a 100644 --- a/netbox/templates/extras/report_result.html +++ b/netbox/templates/extras/report_result.html @@ -8,7 +8,7 @@

- Run: {{ result.created }} + Run: {{ result.created|annotated_date }} {% if result.completed %} Duration: {{ result.duration }} {% else %} diff --git a/netbox/templates/extras/script_list.html b/netbox/templates/extras/script_list.html index e87860622f0..71a73d80e01 100644 --- a/netbox/templates/extras/script_list.html +++ b/netbox/templates/extras/script_list.html @@ -29,7 +29,7 @@

{{ module|bettertitle }}

{{ script.Meta.description|render_markdown }} {% if script.result %} - {{ script.result.created }} + {{ script.result.created|annotated_date }} {% else %} Never diff --git a/netbox/templates/extras/script_result.html b/netbox/templates/extras/script_result.html index 76e0613b74e..816a2348d57 100644 --- a/netbox/templates/extras/script_result.html +++ b/netbox/templates/extras/script_result.html @@ -13,7 +13,7 @@
  • Scripts
  • {{ script.module|bettertitle }}
  • {{ script }}
  • -
  • {{ result.created }}
  • +
  • {{ result.created|annotated_date }}
  • @@ -32,7 +32,7 @@

    {{ script }}

    - Run: {{ result.created }} + Run: {{ result.created|annotated_date }} {% if result.completed %} Duration: {{ result.duration }} {% else %} diff --git a/netbox/templates/generic/object.html b/netbox/templates/generic/object.html index b2f6926d7f6..e7424aa565f 100644 --- a/netbox/templates/generic/object.html +++ b/netbox/templates/generic/object.html @@ -42,8 +42,8 @@

    {% block title %}{{ object }}{% endblock %}

    - Created {{ object.created }} · - Updated {{ object.last_updated|timesince }} ago + Created {{ object.created|annotated_date }} · + Updated {{ object.last_updated|annotated_date }} ({{ object.last_updated|timesince }} ago) {{ object|meta:"app_label" }}.{{ object|meta:"model_name" }}:{{ object.pk }}

    diff --git a/netbox/templates/home.html b/netbox/templates/home.html index 273a78bc90f..618deb8ca03 100644 --- a/netbox/templates/home.html +++ b/netbox/templates/home.html @@ -291,7 +291,7 @@

    Secrets

    {% for result in report_results %} {{ result.name }} - {% include 'extras/inc/job_label.html' %} + {% include 'extras/inc/job_label.html' %} {% endfor %} diff --git a/netbox/templates/inc/image_attachments.html b/netbox/templates/inc/image_attachments.html index 38be9924d14..d1f4e45dcb4 100644 --- a/netbox/templates/inc/image_attachments.html +++ b/netbox/templates/inc/image_attachments.html @@ -1,3 +1,4 @@ +{% load helpers %} {% if images %} @@ -13,7 +14,7 @@ {{ attachment }} - + - + diff --git a/netbox/templates/users/api_tokens.html b/netbox/templates/users/api_tokens.html index f1477329333..ad2e3911a17 100644 --- a/netbox/templates/users/api_tokens.html +++ b/netbox/templates/users/api_tokens.html @@ -24,12 +24,12 @@
    Created
    - {{ token.created|date }} + {{ token.created|annotated_date }}
    Expires
    {% if token.expires %} - {{ token.expires|date }} + {{ token.expires|annotated_date }} {% else %} Never {% endif %} diff --git a/netbox/templates/users/profile.html b/netbox/templates/users/profile.html index 35a94ac6f33..2e575cca610 100644 --- a/netbox/templates/users/profile.html +++ b/netbox/templates/users/profile.html @@ -11,7 +11,7 @@
    {{ request.user.first_name }} {{ request.user.last_name }}
    Email
    {{ request.user.email }}
    Registered -
    {{ request.user.date_joined }}
    +
    {{ request.user.date_joined|annotated_date }}
    Groups
    {{ request.user.groups.all|join:', ' }}
    Admin access diff --git a/netbox/templates/users/userkey.html b/netbox/templates/users/userkey.html index 3839a6925ad..a024ee35235 100644 --- a/netbox/templates/users/userkey.html +++ b/netbox/templates/users/userkey.html @@ -1,4 +1,5 @@ {% extends 'users/base.html' %} +{% load helpers %} {% block title %}User Key{% endblock %} @@ -19,7 +20,9 @@

    {% endif %}

    - Created {{ object.created }} · Updated {{ object.last_updated|timesince }} ago + + Created {{ object.created|annotated_date }} · + Updated {{ object.last_updated|annotated_date }} ({{ object.last_updated|timesince }} ago)

    {% if not object.is_active %}

    Session key: Active

    - Created {{ object.session_key.created }} + Created {{ object.session_key.created|annotated_date }} {% else %}

    No active session key

    {% endif %} diff --git a/netbox/utilities/templatetags/helpers.py b/netbox/utilities/templatetags/helpers.py index 49d8323e9d5..afa45537ae3 100644 --- a/netbox/utilities/templatetags/helpers.py +++ b/netbox/utilities/templatetags/helpers.py @@ -4,8 +4,10 @@ import yaml from django import template +from django.template.defaultfilters import date from django.conf import settings from django.urls import NoReverseMatch, reverse +from django.utils import timezone from django.utils.html import strip_tags from django.utils.safestring import mark_safe from markdown import markdown @@ -151,6 +153,36 @@ def tzoffset(value): return datetime.datetime.now(value).strftime('%z') +@register.filter(expects_localtime=True) +def annotated_date(date_value): + """ + Returns date as HTML span with short date format as the content and the + (long) date format as the title. + """ + if not date_value: + return '' + + if type(date_value) == datetime.date: + long_ts = date(date_value, 'DATE_FORMAT') + short_ts = date(date_value, 'SHORT_DATE_FORMAT') + else: + long_ts = date(date_value, 'DATETIME_FORMAT') + short_ts = date(date_value, 'SHORT_DATETIME_FORMAT') + + span = f'{short_ts}' + + return mark_safe(span) + + +@register.simple_tag +def annotated_now(): + """ + Returns the current date piped through the annotated_date filter. + """ + tzinfo = timezone.get_current_timezone() if settings.USE_TZ else None + return annotated_date(datetime.datetime.now(tz=tzinfo)) + + @register.filter() def fgcolor(value): """
    {{ attachment.size|filesizeformat }}{{ attachment.created }}{{ attachment.created|annotated_date }} {% if perms.extras.change_imageattachment %} diff --git a/netbox/templates/ipam/aggregate.html b/netbox/templates/ipam/aggregate.html index 468531b553c..60a46764496 100644 --- a/netbox/templates/ipam/aggregate.html +++ b/netbox/templates/ipam/aggregate.html @@ -54,7 +54,7 @@
    Date Added{{ object.date_added|placeholder }}{{ object.date_added|annotated_date|placeholder }}
    Description