From 3dde095bfbb1c9bc1c73606983d7cf01e21613e9 Mon Sep 17 00:00:00 2001 From: ldeluigi <44567586+ldeluigi@users.noreply.github.com> Date: Wed, 22 Feb 2023 11:05:06 +0100 Subject: [PATCH] Fix date time localization bugs --- backend/spellbook/admin/job_admin.py | 9 +++++++-- backend/spellbook/static/admin/js/iso_to_local_time.js | 8 +++++--- .../templates/admin/spellbook/job/change_form.html | 6 ------ 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/backend/spellbook/admin/job_admin.py b/backend/spellbook/admin/job_admin.py index 511ccba6..7122814b 100644 --- a/backend/spellbook/admin/job_admin.py +++ b/backend/spellbook/admin/job_admin.py @@ -8,13 +8,15 @@ class JobAdmin(admin.ModelAdmin): readonly_fields = ['created_local', 'expected_termination_local', 'termination_local'] fields = ['id', 'name', 'status', 'created_local', 'expected_termination_local', 'termination_local', 'message', 'started_by'] - list_display = ['id', 'name', 'status', 'created', 'expected_termination', 'termination', 'variants_count'] + list_display = ['id', 'name', 'status', 'created_local', 'expected_termination_local', 'termination_local', 'variants_count'] def variants_count(self, obj): return obj.variants.count() def datetime_to_html(self, datetime): - return format_html('{}', datetime.isoformat(), localize(datetime)) + if datetime is None: + return None + return format_html('{}', datetime.isoformat(), localize(datetime)) @admin.display(description='Created') def created_local(self, obj): @@ -36,3 +38,6 @@ def has_change_permission(self, request, obj=None): def has_delete_permission(self, request, obj=None): return False + + class Media: + js = ['admin/js/jquery.init.js', 'admin/js/iso_to_local_time.js'] diff --git a/backend/spellbook/static/admin/js/iso_to_local_time.js b/backend/spellbook/static/admin/js/iso_to_local_time.js index 82e7969a..182b4e91 100644 --- a/backend/spellbook/static/admin/js/iso_to_local_time.js +++ b/backend/spellbook/static/admin/js/iso_to_local_time.js @@ -1,10 +1,12 @@ django.jQuery(function() { - django.jQuery('.local-datetime').each(function() { + django.jQuery('span.local-datetime').each(function() { var $this = django.jQuery(this); - var iso_date = $this.attr('title'); + var iso_date = $this.attr('data-iso'); if (iso_date) { var local_date = new Date(iso_date); - $this.text(local_date.toLocaleString()); + if (local_date instanceof Date && !isNaN(local_date.valueOf())) { + $this.text(local_date.toLocaleString()); + } } }); }); diff --git a/backend/spellbook/templates/admin/spellbook/job/change_form.html b/backend/spellbook/templates/admin/spellbook/job/change_form.html index 428acdd0..1853376d 100644 --- a/backend/spellbook/templates/admin/spellbook/job/change_form.html +++ b/backend/spellbook/templates/admin/spellbook/job/change_form.html @@ -1,10 +1,4 @@ {% extends "admin/change_form.html" %} -{% load static %} - -{% block extrahead %} - {{ block.super }} - -{% endblock %} {% block after-content %}