diff --git a/netbox/circuits/tables/circuits.py b/netbox/circuits/tables/circuits.py index d5322290f..e79212a14 100644 --- a/netbox/circuits/tables/circuits.py +++ b/netbox/circuits/tables/circuits.py @@ -7,7 +7,6 @@ from tenancy.tables import ContactsColumnMixin, TenancyColumnsMixin from netbox.tables import NetBoxTable, columns from .columns import CommitRateColumn -from .template_code import CIRCUIT_DISTANCE __all__ = ( 'CircuitGroupAssignmentTable', @@ -77,10 +76,7 @@ class CircuitTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable): commit_rate = CommitRateColumn( verbose_name=_('Commit Rate') ) - distance = columns.TemplateColumn( - template_code=CIRCUIT_DISTANCE, - order_by=('_abs_distance') - ) + distance = columns.DistanceColumn() comments = columns.MarkdownColumn( verbose_name=_('Comments') ) diff --git a/netbox/circuits/tables/template_code.py b/netbox/circuits/tables/template_code.py deleted file mode 100644 index 27a182637..000000000 --- a/netbox/circuits/tables/template_code.py +++ /dev/null @@ -1,4 +0,0 @@ -CIRCUIT_DISTANCE = """ -{% load helpers %} -{% if record.distance %}{{ record.distance|floatformat:"-2" }} {{ record.distance_unit }}{% endif %} -""" diff --git a/netbox/netbox/tables/columns.py b/netbox/netbox/tables/columns.py index 0e70a1624..ec5314247 100644 --- a/netbox/netbox/tables/columns.py +++ b/netbox/netbox/tables/columns.py @@ -35,6 +35,7 @@ __all__ = ( 'ContentTypesColumn', 'CustomFieldColumn', 'CustomLinkColumn', + 'DistanceColumn', 'DurationColumn', 'LinkedCountColumn', 'MarkdownColumn', @@ -691,3 +692,22 @@ class ChoicesColumn(tables.Column): value.append(f'({omitted_count} more)') return ', '.join(value) + + +class DistanceColumn(tables.TemplateColumn): + """ + Distance with template code for formatting + """ + template_code = """ + {% load helpers %} + {% if record.distance %}{{ record.distance|floatformat:"-2" }} {{ record.distance_unit }}{% endif %} + """ + + def __init__(self, *args, **kwargs): + super().__init__( + template_code=self.template_code, + order_by=('_abs_distance'), + *args, **kwargs) + + def value(self, value): + return value diff --git a/netbox/wireless/tables/template_code.py b/netbox/wireless/tables/template_code.py deleted file mode 100644 index 03c893c1f..000000000 --- a/netbox/wireless/tables/template_code.py +++ /dev/null @@ -1,4 +0,0 @@ -WIRELESS_LINK_DISTANCE = """ -{% load helpers %} -{% if record.distance %}{{ record.distance|floatformat:"-2" }} {{ record.distance_unit }}{% endif %} -""" diff --git a/netbox/wireless/tables/wirelesslink.py b/netbox/wireless/tables/wirelesslink.py index 9d3a50848..dc8fb66db 100644 --- a/netbox/wireless/tables/wirelesslink.py +++ b/netbox/wireless/tables/wirelesslink.py @@ -4,7 +4,6 @@ import django_tables2 as tables from netbox.tables import NetBoxTable, columns from tenancy.tables import TenancyColumnsMixin from wireless.models import * -from .template_code import WIRELESS_LINK_DISTANCE __all__ = ( 'WirelessLinkTable', @@ -37,10 +36,7 @@ class WirelessLinkTable(TenancyColumnsMixin, NetBoxTable): verbose_name=_('Interface B'), linkify=True ) - distance = columns.TemplateColumn( - template_code=WIRELESS_LINK_DISTANCE, - order_by=('_abs_distance') - ) + distance = columns.DistanceColumn() tags = columns.TagColumn( url_name='wireless:wirelesslink_list' )