From 56557b629ffa575e17738f1ac273fbb4a5be69ab Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 18 Jul 2025 15:57:04 -0400 Subject: [PATCH] Introduce optional dedicated columns for name & filename --- netbox/extras/tables/tables.py | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py index 8848192fa..845cefcfc 100644 --- a/netbox/extras/tables/tables.py +++ b/netbox/extras/tables/tables.py @@ -37,14 +37,6 @@ __all__ = ( 'WebhookTable', ) -IMAGEATTACHMENT_IMAGE = """ -{% if record.image %} - {{ record }} -{% else %} - — -{% endif %} -""" - NOTIFICATION_ICON = """ """ @@ -231,6 +223,19 @@ class ImageAttachmentTable(NetBoxTable): verbose_name=_('ID'), linkify=False ) + image = tables.Column( + verbose_name=_('Image'), + linkify=True, + ) + name = tables.Column( + verbose_name=_('Name'), + linkify=True, + ) + filename = tables.Column( + verbose_name=_('Filename'), + linkify=lambda record: record.image.url, + orderable=False, + ) object_type = columns.ContentTypeColumn( verbose_name=_('Object Type'), ) @@ -238,10 +243,6 @@ class ImageAttachmentTable(NetBoxTable): verbose_name=_('Parent'), linkify=True ) - image = tables.TemplateColumn( - verbose_name=_('Image'), - template_code=IMAGEATTACHMENT_IMAGE, - ) size = tables.Column( orderable=False, verbose_name=_('Size (Bytes)') @@ -250,10 +251,13 @@ class ImageAttachmentTable(NetBoxTable): class Meta(NetBoxTable.Meta): model = ImageAttachment fields = ( - 'pk', 'object_type', 'parent', 'image', 'name', 'description', 'image_height', 'image_width', 'size', - 'created', 'last_updated', + 'pk', 'object_type', 'parent', 'image', 'name', 'filename', 'description', 'image_height', 'image_width', + 'size', 'created', 'last_updated', ) - default_columns = ('object_type', 'parent', 'image', 'name', 'description', 'size', 'created') + default_columns = ('image', 'object_type', 'parent', 'description', 'size') + + def render_image(self, record): + return str(record) def render_size(self, value): return filesizeformat(value)