Filter by rack (#175)

Fixes #174
This commit is contained in:
Roy Vegard Ovesen
2022-10-09 19:12:59 +02:00
committed by GitHub
parent 32042ff2cc
commit 94f5314649
2 changed files with 18 additions and 3 deletions
+6 -1
View File
@@ -2,7 +2,7 @@ from cProfile import label
import django_filters
from django.db.models import Q
from dcim.models import Device, DeviceRole, Region, Site, Location
from dcim.models import Device, DeviceRole, Region, Site, Location, Rack
from dcim.choices import DeviceStatusChoices
from netbox.filtersets import NetBoxModelFilterSet
@@ -39,6 +39,11 @@ class DeviceFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
lookup_expr='in',
label='Location (ID)',
)
rack_id = django_filters.ModelMultipleChoiceFilter(
queryset=Rack.objects.all(),
field_name='rack_id',
label='Rack (ID)',
)
status = django_filters.MultipleChoiceFilter(
choices=DeviceStatusChoices,
null_value=None,
+12 -2
View File
@@ -5,7 +5,7 @@ from django.conf import settings
from django.utils.translation import gettext as _
from dcim.models import Device, Site, Region, DeviceRole, Location
from dcim.models import Device, Site, Region, DeviceRole, Location, Rack
from django import forms
from dcim.choices import DeviceStatusChoices
@@ -23,7 +23,7 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
fieldsets = (
(None, ('q', 'hide_unconnected', 'save_coords', 'show_circuit', 'show_power' ,)),
(None, ('tenant_group_id', 'tenant_id',)),
(None, ('region_id', 'site_id', 'location_id',)),
(None, ('region_id', 'site_id', 'location_id', 'rack_id')),
(None, ('device_role_id','id','status', )),
(None, ('tag', )),
)
@@ -66,6 +66,16 @@ class DeviceFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
},
label=_('Location')
)
rack_id = DynamicModelMultipleChoiceField(
queryset=Rack.objects.all(),
required=False,
query_params={
'region_id': '$region_id',
'site_id': '$site_id',
'location_id': '$location_id',
},
label=_('Rack')
)
hide_unconnected = forms.BooleanField(
label=_("Hide Unconnected"),
required=False,