Parcourir la source

Merge pull request #273 from bellwood/devices-filter-add-rackgroup

allow filtering by rack group
Jeremy Stretch il y a 8 ans
Parent
commit
07fc2e5502
1 fichiers modifiés avec 8 ajouts et 1 suppressions
  1. 8 1
      netbox/dcim/forms.py

+ 8 - 1
netbox/dcim/forms.py

@@ -186,7 +186,7 @@ def rack_group_choices():
 class RackFilterForm(forms.Form, BootstrapMixin):
     site = forms.MultipleChoiceField(required=False, choices=rack_site_choices,
                                      widget=forms.SelectMultiple(attrs={'size': 8}))
-    group_id = forms.MultipleChoiceField(required=False, choices=rack_group_choices,
+    group_id = forms.MultipleChoiceField(required=False, choices=rack_group_choices, label='Rack Group',
                                          widget=forms.SelectMultiple(attrs={'size': 8}))
 
 
@@ -502,6 +502,11 @@ def device_site_choices():
     return [(s.slug, '{} ({})'.format(s.name, s.device_count)) for s in site_choices]
 
 
+def rack_group_choices():
+    group_choices = RackGroup.objects.select_related('site').annotate(rack_count=Count('racks'))
+    return [(g.pk, '{} ({})'.format(g, g.rack_count)) for g in group_choices]
+
+
 def device_role_choices():
     role_choices = DeviceRole.objects.annotate(device_count=Count('devices'))
     return [(r.slug, '{} ({})'.format(r.name, r.device_count)) for r in role_choices]
@@ -520,6 +525,8 @@ def device_platform_choices():
 class DeviceFilterForm(forms.Form, BootstrapMixin):
     site = forms.MultipleChoiceField(required=False, choices=device_site_choices,
                                      widget=forms.SelectMultiple(attrs={'size': 8}))
+    group_id = forms.MultipleChoiceField(required=False, choices=rack_group_choices, label='Rack Group',
+                                         widget=forms.SelectMultiple(attrs={'size': 8}))
     role = forms.MultipleChoiceField(required=False, choices=device_role_choices,
                                      widget=forms.SelectMultiple(attrs={'size': 8}))
     device_type_id = forms.MultipleChoiceField(required=False, choices=device_type_choices, label='Type',