From 3cf1d6baf4b5c05e85d4635ed70aa8641944e673 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Tue, 21 Sep 2021 14:04:47 -0400 Subject: [PATCH] Closes #7118: Render URL custom fields as hyperlinks in object tables --- docs/release-notes/version-3.0.md | 1 + netbox/utilities/tables.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/docs/release-notes/version-3.0.md b/docs/release-notes/version-3.0.md index ac39b2bf1..d74643f6c 100644 --- a/docs/release-notes/version-3.0.md +++ b/docs/release-notes/version-3.0.md @@ -4,6 +4,7 @@ ### Enhancements +* [#7118](https://github.com/netbox-community/netbox/issues/7118) - Render URL custom fields as hyperlinks in object tables * [#7323](https://github.com/netbox-community/netbox/issues/7323) - Add serial filter field for racks & devices ### Bug Fixes diff --git a/netbox/utilities/tables.py b/netbox/utilities/tables.py index 4d8a60114..0a8e8c3ba 100644 --- a/netbox/utilities/tables.py +++ b/netbox/utilities/tables.py @@ -11,6 +11,7 @@ from django_tables2 import RequestConfig from django_tables2.data import TableQuerysetData from django_tables2.utils import Accessor +from extras.choices import CustomFieldTypeChoices from extras.models import CustomField from .utils import content_type_name from .paginator import EnhancedPaginator, get_paginate_count @@ -355,6 +356,9 @@ class CustomFieldColumn(tables.Column): def render(self, value): if isinstance(value, list): return ', '.join(v for v in value) + elif self.customfield.type == CustomFieldTypeChoices.TYPE_URL: + # Linkify custom URLs + return mark_safe(f'{value}') return value or self.default