diff --git a/netbox/extras/filtersets.py b/netbox/extras/filtersets.py
index a1ead5494..f711ddc01 100644
--- a/netbox/extras/filtersets.py
+++ b/netbox/extras/filtersets.py
@@ -458,6 +458,7 @@ class ImageAttachmentFilterSet(ChangeLoggedModelFilterSet):
return queryset
return queryset.filter(
Q(name__icontains=value) |
+ Q(image__icontains=value) |
Q(description__icontains=value)
)
diff --git a/netbox/extras/search.py b/netbox/extras/search.py
index bc6381512..688618690 100644
--- a/netbox/extras/search.py
+++ b/netbox/extras/search.py
@@ -19,6 +19,7 @@ class ImageAttachmentIndex(SearchIndex):
model = models.ImageAttachment
fields = (
('name', 100),
+ ('filename', 110),
('description', 500),
)
display_attrs = ('description',)
diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py
index 1c512f408..d55d7fc48 100644
--- a/netbox/extras/tables/tables.py
+++ b/netbox/extras/tables/tables.py
@@ -1,6 +1,7 @@
import json
import django_tables2 as tables
+from django.template.defaultfilters import filesizeformat
from django.utils.html import format_html
from django.utils.translation import gettext_lazy as _
@@ -38,10 +39,11 @@ __all__ = (
IMAGEATTACHMENT_IMAGE = """
{% if record.image %}
- {{ record }}
-{% else %}
- —
+
+
+
{% endif %}
+{{ record }}
"""
NOTIFICATION_ICON = """
@@ -230,29 +232,50 @@ class ImageAttachmentTable(NetBoxTable):
verbose_name=_('ID'),
linkify=False
)
+ image = columns.TemplateColumn(
+ verbose_name=_('Image'),
+ template_code=IMAGEATTACHMENT_IMAGE,
+ )
+ name = tables.Column(
+ verbose_name=_('Name'),
+ linkify=True,
+ )
+ filename = tables.Column(
+ verbose_name=_('Filename'),
+ linkify=lambda record: record.image.url,
+ orderable=False,
+ )
+ dimensions = columns.TemplateColumn(
+ verbose_name=_('Dimensions'),
+ orderable=False,
+ template_code="{{ record.image_width }}×{{ record.image_height }}",
+ )
object_type = columns.ContentTypeColumn(
verbose_name=_('Object Type'),
)
parent = tables.Column(
verbose_name=_('Parent'),
- linkify=True
- )
- image = tables.TemplateColumn(
- verbose_name=_('Image'),
- template_code=IMAGEATTACHMENT_IMAGE,
+ linkify=True,
+ orderable=False,
)
size = tables.Column(
orderable=False,
- verbose_name=_('Size (Bytes)')
+ verbose_name=_('Size')
)
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', 'parent', 'description', 'dimensions', 'size')
+
+ def render_size(self, value):
+ return filesizeformat(value)
+
+ def value_size(self, value):
+ return value
class SavedFilterTable(NetBoxTable):