Parcourir la source

Related to #1144: Allow multiple status selections when filtering device list

Jeremy Stretch il y a 8 ans
Parent
commit
af4edff370
2 fichiers modifiés avec 8 ajouts et 5 suppressions
  1. 7 4
      netbox/dcim/filters.py
  2. 1 1
      netbox/dcim/forms.py

+ 7 - 4
netbox/dcim/filters.py

@@ -8,9 +8,9 @@ from tenancy.models import Tenant
 from utilities.filters import NullableModelMultipleChoiceFilter, NumericInFilter
 from .models import (
     ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay,
-    DeviceBayTemplate, DeviceRole, DeviceType, IFACE_FF_LAG, Interface, InterfaceConnection, InterfaceTemplate,
-    Manufacturer, InventoryItem, Platform, PowerOutlet, PowerOutletTemplate, PowerPort, PowerPortTemplate, Rack,
-    RackGroup, RackReservation, RackRole, Region, Site, VIRTUAL_IFACE_TYPES,
+    DeviceBayTemplate, DeviceRole, DeviceType, STATUS_CHOICES, IFACE_FF_LAG, Interface, InterfaceConnection,
+    InterfaceTemplate, Manufacturer, InventoryItem, Platform, PowerOutlet, PowerOutletTemplate, PowerPort,
+    PowerPortTemplate, Rack, RackGroup, RackReservation, RackRole, Region, Site, VIRTUAL_IFACE_TYPES,
 )
 
 
@@ -389,10 +389,13 @@ class DeviceFilter(CustomFieldFilterSet, django_filters.FilterSet):
         method='_has_primary_ip',
         label='Has a primary IP',
     )
+    status = django_filters.MultipleChoiceFilter(
+        choices=STATUS_CHOICES
+    )
 
     class Meta:
         model = Device
-        fields = ['name', 'serial', 'asset_tag', 'status']
+        fields = ['name', 'serial', 'asset_tag']
 
     def search(self, queryset, name, value):
         if not value.strip():

+ 1 - 1
netbox/dcim/forms.py

@@ -807,7 +807,7 @@ class DeviceFilterForm(BootstrapMixin, CustomFieldFilterForm):
         to_field_name='slug',
         null_option=(0, 'None'),
     )
-    status = forms.ChoiceField(required=False, choices=device_status_choices)
+    status = forms.MultipleChoiceField(choices=device_status_choices, required=False)
     mac_address = forms.CharField(required=False, label='MAC address')