feat: make site prefix column sortable

Clicking the Prefix column header sorts device and rack lists by site
name, which starts with the prefix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-25 11:10:29 +02:00
co-authored by Claude Opus 5.5
parent 337cd28c23
commit c7b65f123b
3 changed files with 11 additions and 2 deletions
+5 -1
View File
@@ -43,7 +43,7 @@ beziehungsweise dem globalen Mandantenfilter vorbelegt.
Ab Version `0.14.0` enthält das Plugin die Prefix-Spalte des bisherigen
Plugins NetBox Site Prefix. Geräte- und Rack-Listen lassen sich zusätzlich
nach diesem Prefix filtern.
nach diesem Prefix sortieren und filtern.
## Kompatibilität
@@ -275,6 +275,10 @@ Datenspalte. Der Wert ist das erste Wort des Standortnamens, z. B. `Berlin`
für `Berlin Campus West` oder `DC01` für `DC01 Frankfurt`; ohne Standort
bleibt die Zelle leer.
Ein Klick auf die Spaltenüberschrift **Prefix** sortiert die Liste auf- bzw.
absteigend, wie bei **Name**. Sortiert wird nach dem Standortnamen, der mit
dem Prefix beginnt.
Hat ein Benutzer bereits eine eigene Spaltenauswahl gespeichert, hat diese
Vorrang. Dann unter **Spalten konfigurieren** die Spalte **Prefix** auswählen
und nach vorne schieben oder die Tabellenkonfiguration zurücksetzen.
+2 -1
View File
@@ -104,7 +104,8 @@ def install_site_prefix_column():
accessor=tables.A("site"),
verbose_name="Prefix",
empty_values=(),
orderable=False,
# Der Standortname beginnt mit dem Prefix, sortiert also in derselben Reihenfolge.
order_by=("site__name",),
)
register_table_column(column, COLUMN_NAME, DeviceTable, RackTable)
prepend_to_default_columns(DeviceTable)
@@ -74,5 +74,9 @@ class SitePrefixTest(SimpleTestCase):
self.assertIn(COLUMN_NAME, DeviceTable.base_columns)
self.assertIn(COLUMN_NAME, RackTable.base_columns)
for table in (DeviceTable, RackTable):
column = table.base_columns[COLUMN_NAME]
self.assertTrue(column.orderable)
self.assertEqual(tuple(column.order_by), ("site__name",))
self.assertEqual(DeviceTable.Meta.default_columns[:2], ("pk", COLUMN_NAME))
self.assertEqual(RackTable.Meta.default_columns[:2], ("pk", COLUMN_NAME))