Skip to content

Commit 95d0ca5

Browse files
authored
Fixes #19487: fix ordering issues with CircuitTerminationTable/TunnelTerminationTable configuration (#19600)
* Fixes #19487: make CircuitTermination.termination GFK not orderable * Add test to ensure no more broken sorting for CircuitTerminationTable * Fix CircuitTerminationTable.site_group accessor * Make TunnelTerminationTable.termination GFK field non-orderable
1 parent ecb8656 commit 95d0ca5

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

netbox/circuits/tables/circuits.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ class CircuitTerminationTable(NetBoxTable):
120120
)
121121
termination = tables.Column(
122122
verbose_name=_('Termination Point'),
123-
linkify=True
123+
linkify=True,
124+
orderable=False,
124125
)
125126

126127
# Termination types
@@ -132,7 +133,7 @@ class CircuitTerminationTable(NetBoxTable):
132133
site_group = tables.Column(
133134
verbose_name=_('Site Group'),
134135
linkify=True,
135-
accessor='_sitegroup'
136+
accessor='_site_group'
136137
)
137138
region = tables.Column(
138139
verbose_name=_('Region'),

netbox/circuits/tests/test_tables.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from django.test import RequestFactory, tag, TestCase
2+
3+
from circuits.models import CircuitTermination
4+
from circuits.tables import CircuitTerminationTable
5+
6+
7+
@tag('regression')
8+
class CircuitTerminationTableTest(TestCase):
9+
def test_every_orderable_field_does_not_throw_exception(self):
10+
terminations = CircuitTermination.objects.all()
11+
disallowed = {'actions', }
12+
13+
orderable_columns = [
14+
column.name for column in CircuitTerminationTable(terminations).columns
15+
if column.orderable and column.name not in disallowed
16+
]
17+
fake_request = RequestFactory().get("/")
18+
19+
for col in orderable_columns:
20+
for dir in ('-', ''):
21+
table = CircuitTerminationTable(terminations)
22+
table.order_by = f'{dir}{col}'
23+
table.as_html(fake_request)

netbox/vpn/tables/tunnels.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ class TunnelTerminationTable(TenancyColumnsMixin, NetBoxTable):
8989
)
9090
termination = tables.Column(
9191
verbose_name=_('Tunnel interface'),
92-
linkify=True
92+
linkify=True,
93+
orderable=False,
9394
)
9495
ip_addresses = columns.ManyToManyColumn(
9596
accessor=tables.A('termination__ip_addresses'),

0 commit comments

Comments
 (0)