From 5d8c6d112676c8c8c89e9766430733e6d0ec2852 Mon Sep 17 00:00:00 2001 From: Michal 'BlessJah' Marzuchowski Date: Wed, 15 May 2019 17:35:55 +0200 Subject: [PATCH] Add rack name field to RackFilter Thanks to additional field it is now possible to select arbitrary racks for display e.g. in Rack Elevations view. --- netbox/dcim/filters.py | 6 ++++++ netbox/dcim/forms.py | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index f9f0a57d6..5ed02a529 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -128,6 +128,12 @@ class RackFilter(TenancyFilterSet, CustomFieldFilterSet): queryset=Site.objects.all(), label='Site (ID)', ) + rack = django_filters.ModelMultipleChoiceFilter( + field_name='name', + queryset=Rack.objects.all(), + to_field_name='name', + label='Rack (name)', + ) site = django_filters.ModelMultipleChoiceFilter( field_name='site__slug', queryset=Site.objects.all(), diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index f10418d57..748809320 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -590,11 +590,19 @@ class RackBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldBulkEditFor class RackFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = Rack - field_order = ['q', 'site', 'group_id', 'status', 'role', 'tenant_group', 'tenant'] + field_order = ['q', 'rack', 'site', 'group_id', 'status', 'role', 'tenant_group', 'tenant'] q = forms.CharField( required=False, label='Search' ) + rack = FilterChoiceField( + queryset=Rack.objects.all(), + to_field_name='name', + widget=APISelectMultiple( + api_url="/api/dcim/racks/", + value_field="name", + ) + ) site = FilterChoiceField( queryset=Site.objects.all(), to_field_name='slug',