From 479c319634da93b5ffd692ba9e46f31fdae780c4 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 16 Jul 2024 08:04:30 -0400 Subject: [PATCH] Establish a base filter form for Rack & RackType --- netbox/dcim/forms/filtersets.py | 64 ++++++++++++--------------------- 1 file changed, 22 insertions(+), 42 deletions(-) diff --git a/netbox/dcim/forms/filtersets.py b/netbox/dcim/forms/filtersets.py index 5fc428bee..5d16a7b39 100644 --- a/netbox/dcim/forms/filtersets.py +++ b/netbox/dcim/forms/filtersets.py @@ -241,19 +241,7 @@ class RackRoleFilterForm(NetBoxModelFilterSetForm): tag = TagFilterField(model) -class RackTypeFilterForm(NetBoxModelFilterSetForm): - model = RackType - fieldsets = ( - FieldSet('q', 'filter_id', 'tag'), - FieldSet('form_factor', 'width', 'u_height', 'starting_unit', name=_('Rack Type')), - FieldSet('weight', 'max_weight', 'weight_unit', name=_('Weight')), - ) - selector_fields = ('filter_id', 'q', 'manufacturer_id') - manufacturer_id = DynamicModelMultipleChoiceField( - queryset=Manufacturer.objects.all(), - required=False, - label=_('Manufacturer') - ) +class RackBaseFilterForm(NetBoxModelFilterSetForm): form_factor = forms.MultipleChoiceField( label=_('Form factor'), choices=RackFormFactorChoices, @@ -294,19 +282,36 @@ class RackTypeFilterForm(NetBoxModelFilterSetForm): choices=add_blank_choice(WeightUnitChoices), required=False ) + + +class RackTypeFilterForm(RackBaseFilterForm): + model = RackType + fieldsets = ( + FieldSet('q', 'filter_id', 'tag'), + FieldSet('form_factor', 'width', 'u_height', name=_('Rack Type')), + FieldSet('starting_unit', 'desc_units', name=_('Numbering')), + FieldSet('weight', 'max_weight', 'weight_unit', name=_('Weight')), + ) + selector_fields = ('filter_id', 'q', 'manufacturer_id') + manufacturer_id = DynamicModelMultipleChoiceField( + queryset=Manufacturer.objects.all(), + required=False, + label=_('Manufacturer') + ) tag = TagFilterField(model) -class RackFilterForm(TenancyFilterForm, ContactModelFilterForm, NetBoxModelFilterSetForm): +class RackFilterForm(TenancyFilterForm, ContactModelFilterForm, RackBaseFilterForm): model = Rack fieldsets = ( FieldSet('q', 'filter_id', 'tag'), FieldSet('region_id', 'site_group_id', 'site_id', 'location_id', name=_('Location')), - FieldSet('status', 'role_id', name=_('Function')), - FieldSet('form_factor', 'width', 'serial', 'asset_tag', name=_('Hardware')), FieldSet('tenant_group_id', 'tenant_id', name=_('Tenant')), - FieldSet('contact', 'contact_role', 'contact_group', name=_('Contacts')), + FieldSet('status', 'role_id', 'serial', 'asset_tag', name=_('Rack')), + FieldSet('form_factor', 'width', 'u_height', name=_('Rack Type')), + FieldSet('starting_unit', 'desc_units', name=_('Numbering')), FieldSet('weight', 'max_weight', 'weight_unit', name=_('Weight')), + FieldSet('contact', 'contact_role', 'contact_group', name=_('Contacts')), ) selector_fields = ('filter_id', 'q', 'region_id', 'site_group_id', 'site_id', 'location_id') region_id = DynamicModelMultipleChoiceField( @@ -341,16 +346,6 @@ class RackFilterForm(TenancyFilterForm, ContactModelFilterForm, NetBoxModelFilte choices=RackStatusChoices, required=False ) - form_factor = forms.MultipleChoiceField( - label=_('Form factor'), - choices=RackFormFactorChoices, - required=False - ) - width = forms.MultipleChoiceField( - label=_('Width'), - choices=RackWidthChoices, - required=False - ) role_id = DynamicModelMultipleChoiceField( queryset=RackRole.objects.all(), required=False, @@ -366,21 +361,6 @@ class RackFilterForm(TenancyFilterForm, ContactModelFilterForm, NetBoxModelFilte required=False ) tag = TagFilterField(model) - weight = forms.DecimalField( - label=_('Weight'), - required=False, - min_value=1 - ) - max_weight = forms.IntegerField( - label=_('Max weight'), - required=False, - min_value=1 - ) - weight_unit = forms.ChoiceField( - label=_('Weight unit'), - choices=add_blank_choice(WeightUnitChoices), - required=False - ) class RackElevationFilterForm(RackFilterForm):