Skip to content

Commit c2fe2ba

Browse files
Merge pull request #9147 from minitriga/issue_8998
Closes #8998: Add site group filter to racks
2 parents 52b1839 + 7cd8406 commit c2fe2ba

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

netbox/dcim/filtersets.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,19 @@ class RackReservationFilterSet(NetBoxModelFilterSet, TenancyFilterSet):
346346
to_field_name='slug',
347347
label='Site (slug)',
348348
)
349+
site_group_id = TreeNodeMultipleChoiceFilter(
350+
queryset=SiteGroup.objects.all(),
351+
field_name='rack__site__group',
352+
lookup_expr='in',
353+
label='Site group (ID)',
354+
)
355+
site_group = TreeNodeMultipleChoiceFilter(
356+
queryset=SiteGroup.objects.all(),
357+
field_name='rack__site__group',
358+
lookup_expr='in',
359+
to_field_name='slug',
360+
label='Site group (slug)',
361+
)
349362
location_id = TreeNodeMultipleChoiceFilter(
350363
queryset=Location.objects.all(),
351364
field_name='rack__location',

netbox/dcim/forms/filtersets.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ class RackFilterForm(TenancyFilterForm, ContactModelFilterForm, NetBoxModelFilte
210210
model = Rack
211211
fieldsets = (
212212
(None, ('q', 'tag')),
213-
('Location', ('region_id', 'site_id', 'location_id')),
213+
('Location', ('region_id', 'site_group_id', 'site_id', 'location_id')),
214214
('Function', ('status', 'role_id')),
215215
('Hardware', ('type', 'width', 'serial', 'asset_tag')),
216216
('Tenant', ('tenant_group_id', 'tenant_id')),
@@ -229,6 +229,11 @@ class RackFilterForm(TenancyFilterForm, ContactModelFilterForm, NetBoxModelFilte
229229
},
230230
label=_('Site')
231231
)
232+
site_group_id = DynamicModelMultipleChoiceField(
233+
queryset=SiteGroup.objects.all(),
234+
required=False,
235+
label=_('Site group')
236+
)
232237
location_id = DynamicModelMultipleChoiceField(
233238
queryset=Location.objects.all(),
234239
required=False,
@@ -282,7 +287,7 @@ class RackReservationFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
282287
fieldsets = (
283288
(None, ('q', 'tag')),
284289
('User', ('user_id',)),
285-
('Rack', ('region_id', 'site_id', 'location_id')),
290+
('Rack', ('region_id', 'site_group_id', 'site_id', 'location_id')),
286291
('Tenant', ('tenant_group_id', 'tenant_id')),
287292
)
288293
region_id = DynamicModelMultipleChoiceField(
@@ -298,6 +303,11 @@ class RackReservationFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
298303
},
299304
label=_('Site')
300305
)
306+
site_group_id = DynamicModelMultipleChoiceField(
307+
queryset=SiteGroup.objects.all(),
308+
required=False,
309+
label=_('Site group')
310+
)
301311
location_id = DynamicModelMultipleChoiceField(
302312
queryset=Location.objects.prefetch_related('site'),
303313
required=False,

0 commit comments

Comments
 (0)