From 865ac9620d195bac5c2da3cf18466273d6ef4686 Mon Sep 17 00:00:00 2001 From: Arthur Date: Thu, 8 Dec 2022 16:22:23 -0800 Subject: [PATCH 1/2] 11077 use formatting for custom field date --- netbox/netbox/tables/columns.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/netbox/netbox/tables/columns.py b/netbox/netbox/tables/columns.py index 81fdaa20f0a..2d90e4bbf6f 100644 --- a/netbox/netbox/tables/columns.py +++ b/netbox/netbox/tables/columns.py @@ -7,6 +7,7 @@ from django.db.models import DateField, DateTimeField from django.template import Context, Template from django.urls import reverse +from django.utils.dateparse import parse_date from django.utils.encoding import escape_uri_path from django.utils.html import escape from django.utils.formats import date_format @@ -51,7 +52,9 @@ class DateColumn(tables.DateColumn): default, making this behavior consistent in all fields of type DateField. """ def value(self, value): - return value + if value: + return date_format(value, format="SHORT_DATE_FORMAT") + return None @classmethod def from_field(cls, field, **kwargs): @@ -441,6 +444,7 @@ def _linkify_item(item): return escape(item) def render(self, value): + print("render CustomFieldColumn") if self.customfield.type == CustomFieldTypeChoices.TYPE_BOOLEAN and value is True: return mark_safe('') if self.customfield.type == CustomFieldTypeChoices.TYPE_BOOLEAN and value is False: @@ -455,6 +459,8 @@ def render(self, value): )) if self.customfield.type == CustomFieldTypeChoices.TYPE_LONGTEXT and value: return render_markdown(value) + if self.customfield.type == CustomFieldTypeChoices.TYPE_DATE and value: + return date_format(parse_date(value), format="SHORT_DATE_FORMAT") if value is not None: obj = self.customfield.deserialize(value) return mark_safe(self._linkify_item(obj)) From 2cd690903976725da2dc696522a89024f85260ea Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Tue, 13 Dec 2022 09:05:46 -0500 Subject: [PATCH 2/2] Apply configured date format to column render() method --- netbox/netbox/tables/columns.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/netbox/netbox/tables/columns.py b/netbox/netbox/tables/columns.py index 2d90e4bbf6f..0987b8821e8 100644 --- a/netbox/netbox/tables/columns.py +++ b/netbox/netbox/tables/columns.py @@ -51,10 +51,12 @@ class DateColumn(tables.DateColumn): tables and null when exporting data. It is registered in the tables library to use this class instead of the default, making this behavior consistent in all fields of type DateField. """ - def value(self, value): + def render(self, value): if value: return date_format(value, format="SHORT_DATE_FORMAT") - return None + + def value(self, value): + return value @classmethod def from_field(cls, field, **kwargs): @@ -444,7 +446,6 @@ def _linkify_item(item): return escape(item) def render(self, value): - print("render CustomFieldColumn") if self.customfield.type == CustomFieldTypeChoices.TYPE_BOOLEAN and value is True: return mark_safe('') if self.customfield.type == CustomFieldTypeChoices.TYPE_BOOLEAN and value is False: