feat: add multi-rack elevation view and switch icons

- add rack elevation view for one or multiple racks
- render front and rear device positions by rack unit
- show physical cabling below selected racks
- add site, location, rack, and empty-rack filters
- add network, leaf, spine, and aggregation switch icons
- add “Weitere Ansichten” navigation category
This commit is contained in:
2026-07-22 09:26:36 +02:00
parent 8aea42c50b
commit fccc54e75e
11 changed files with 229 additions and 2 deletions
+21 -1
View File
@@ -230,7 +230,6 @@ class DeviceFilterForm(
choices=BOOLEAN_WITH_BLANK_CHOICES
)
)
tag = TagFilterField(model)
# options
@@ -361,6 +360,27 @@ class DeviceFilterForm(
)
)
class RackElevationFilterForm(forms.Form):
"""Compact selector for the rack elevation view."""
site_id = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(), required=False, label=_("Site")
)
location_id = DynamicModelMultipleChoiceField(
queryset=Location.objects.all(), required=False, label=_("Location"),
query_params={"site_id": "$site_id"},
)
rack_id = DynamicModelMultipleChoiceField(
queryset=Rack.objects.all(), required=False, label=_("Racks"),
query_params={"site_id": "$site_id", "location_id": "$location_id"},
help_text=_("Select one or more racks. If empty, all matching racks are shown."),
)
include_empty = forms.BooleanField(
required=False, initial=False, label=_("Include empty racks")
)
class CoordinateGroupsForm(NetBoxModelForm):
fieldsets = (
FieldSet('name', 'description', name=_("Group Details")),