diff --git a/README.md b/README.md index 83cb6d8..5e640f8 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/netbox_utilities/site_prefix.py b/netbox_utilities/site_prefix.py index 7208f42..49dab9c 100644 --- a/netbox_utilities/site_prefix.py +++ b/netbox_utilities/site_prefix.py @@ -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) diff --git a/netbox_utilities/tests/test_site_prefix.py b/netbox_utilities/tests/test_site_prefix.py index bfa4841..892c935 100644 --- a/netbox_utilities/tests/test_site_prefix.py +++ b/netbox_utilities/tests/test_site_prefix.py @@ -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))