mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-23 17:08:41 -06:00
Fixes #271: Add rack group filter for devices
This commit is contained in:
parent
07fc2e5502
commit
9421ec040c
@ -122,6 +122,11 @@ class DeviceFilter(django_filters.FilterSet):
|
|||||||
to_field_name='slug',
|
to_field_name='slug',
|
||||||
label='Site name (slug)',
|
label='Site name (slug)',
|
||||||
)
|
)
|
||||||
|
rack_group_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
|
name='rack__group',
|
||||||
|
queryset=RackGroup.objects.all(),
|
||||||
|
label='Rack group (ID)',
|
||||||
|
)
|
||||||
rack_id = django_filters.ModelMultipleChoiceFilter(
|
rack_id = django_filters.ModelMultipleChoiceFilter(
|
||||||
name='rack',
|
name='rack',
|
||||||
queryset=Rack.objects.all(),
|
queryset=Rack.objects.all(),
|
||||||
|
@ -502,9 +502,9 @@ def device_site_choices():
|
|||||||
return [(s.slug, '{} ({})'.format(s.name, s.device_count)) for s in site_choices]
|
return [(s.slug, '{} ({})'.format(s.name, s.device_count)) for s in site_choices]
|
||||||
|
|
||||||
|
|
||||||
def rack_group_choices():
|
def device_rack_group_choices():
|
||||||
group_choices = RackGroup.objects.select_related('site').annotate(rack_count=Count('racks'))
|
group_choices = RackGroup.objects.select_related('site').annotate(device_count=Count('racks__devices'))
|
||||||
return [(g.pk, '{} ({})'.format(g, g.rack_count)) for g in group_choices]
|
return [(g.pk, '{} ({})'.format(g, g.device_count)) for g in group_choices]
|
||||||
|
|
||||||
|
|
||||||
def device_role_choices():
|
def device_role_choices():
|
||||||
@ -525,8 +525,8 @@ def device_platform_choices():
|
|||||||
class DeviceFilterForm(forms.Form, BootstrapMixin):
|
class DeviceFilterForm(forms.Form, BootstrapMixin):
|
||||||
site = forms.MultipleChoiceField(required=False, choices=device_site_choices,
|
site = forms.MultipleChoiceField(required=False, choices=device_site_choices,
|
||||||
widget=forms.SelectMultiple(attrs={'size': 8}))
|
widget=forms.SelectMultiple(attrs={'size': 8}))
|
||||||
group_id = forms.MultipleChoiceField(required=False, choices=rack_group_choices, label='Rack Group',
|
rack_group_id = forms.MultipleChoiceField(required=False, choices=device_rack_group_choices, label='Rack Group',
|
||||||
widget=forms.SelectMultiple(attrs={'size': 8}))
|
widget=forms.SelectMultiple(attrs={'size': 8}))
|
||||||
role = forms.MultipleChoiceField(required=False, choices=device_role_choices,
|
role = forms.MultipleChoiceField(required=False, choices=device_role_choices,
|
||||||
widget=forms.SelectMultiple(attrs={'size': 8}))
|
widget=forms.SelectMultiple(attrs={'size': 8}))
|
||||||
device_type_id = forms.MultipleChoiceField(required=False, choices=device_type_choices, label='Type',
|
device_type_id = forms.MultipleChoiceField(required=False, choices=device_type_choices, label='Type',
|
||||||
|
Loading…
Reference in New Issue
Block a user