From faf676e6e05729f9dccc5474166863d296e3ae7d Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 26 Feb 2020 17:17:00 -0500 Subject: [PATCH] Closes #4281: Allow filtering device component list views by type --- docs/release-notes/version-2.7.md | 1 + netbox/dcim/forms.py | 35 +++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/docs/release-notes/version-2.7.md b/docs/release-notes/version-2.7.md index b314a8433..1ec2f6a56 100644 --- a/docs/release-notes/version-2.7.md +++ b/docs/release-notes/version-2.7.md @@ -5,6 +5,7 @@ ## Enhancements * [#3949](https://github.com/netbox-community/netbox/issues/3949) - Revised the installation docs and upgrade script to employ a Python virtual environment +* [#4281](https://github.com/netbox-community/netbox/issues/4281) - Allow filtering device component list views by type ## Bug Fixes diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 0e5fb382a..9ba5cb7c2 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -2344,6 +2344,11 @@ class DeviceBulkAddInterfaceForm(DeviceBulkAddComponentForm): class ConsolePortFilterForm(DeviceComponentFilterForm): model = ConsolePort + type = forms.MultipleChoiceField( + choices=ConsolePortTypeChoices, + required=False, + widget=StaticSelect2Multiple() + ) tag = TagFilterField(model) @@ -2429,6 +2434,11 @@ class ConsolePortCSVForm(forms.ModelForm): class ConsoleServerPortFilterForm(DeviceComponentFilterForm): model = ConsoleServerPort + type = forms.MultipleChoiceField( + choices=ConsolePortTypeChoices, + required=False, + widget=StaticSelect2Multiple() + ) tag = TagFilterField(model) @@ -2528,6 +2538,11 @@ class ConsoleServerPortCSVForm(forms.ModelForm): class PowerPortFilterForm(DeviceComponentFilterForm): model = PowerPort + type = forms.MultipleChoiceField( + choices=PowerPortTypeChoices, + required=False, + widget=StaticSelect2Multiple() + ) tag = TagFilterField(model) @@ -2633,6 +2648,11 @@ class PowerPortCSVForm(forms.ModelForm): class PowerOutletFilterForm(DeviceComponentFilterForm): model = PowerOutlet + type = forms.MultipleChoiceField( + choices=PowerOutletTypeChoices, + required=False, + widget=StaticSelect2Multiple() + ) tag = TagFilterField(model) @@ -2821,6 +2841,11 @@ class PowerOutletBulkDisconnectForm(ConfirmationForm): class InterfaceFilterForm(DeviceComponentFilterForm): model = Interface + type = forms.MultipleChoiceField( + choices=InterfaceTypeChoices, + required=False, + widget=StaticSelect2Multiple() + ) enabled = forms.NullBooleanField( required=False, widget=StaticSelect2( @@ -3190,6 +3215,11 @@ class InterfaceBulkDisconnectForm(ConfirmationForm): class FrontPortFilterForm(DeviceComponentFilterForm): model = FrontPort + type = forms.MultipleChoiceField( + choices=PortTypeChoices, + required=False, + widget=StaticSelect2Multiple() + ) tag = TagFilterField(model) @@ -3379,6 +3409,11 @@ class FrontPortBulkDisconnectForm(ConfirmationForm): class RearPortFilterForm(DeviceComponentFilterForm): model = RearPort + type = forms.MultipleChoiceField( + choices=PortTypeChoices, + required=False, + widget=StaticSelect2Multiple() + ) tag = TagFilterField(model)