Explorar o código

feat(filtersets): Add ContentTypeFilter to enhance filtering

Introduce `ContentTypeFilter` across several filtersets, including
`object_type`, `related_object_type`, `assigned_object_type`, and
`parent_object_type`. This improvement enhances filtering specificity
and aligns with existing usability standards.

Closes #20554
Martin Hauser hai 4 meses
pai
achega
f23ee0a46f
Modificáronse 3 ficheiros con 5 adicións e 0 borrados
  1. 2 0
      netbox/core/filtersets.py
  2. 1 0
      netbox/dcim/filtersets.py
  3. 2 0
      netbox/ipam/filtersets.py

+ 2 - 0
netbox/core/filtersets.py

@@ -80,6 +80,7 @@ class JobFilterSet(BaseFilterSet):
         method='search',
         label=_('Search'),
     )
+    object_type = ContentTypeFilter()
     created = django_filters.DateTimeFilter()
     created__before = django_filters.DateTimeFilter(
         field_name='created',
@@ -169,6 +170,7 @@ class ObjectChangeFilterSet(BaseFilterSet):
     changed_object_type_id = django_filters.ModelMultipleChoiceFilter(
         queryset=ContentType.objects.all()
     )
+    related_object_type = ContentTypeFilter()
     user_id = django_filters.ModelMultipleChoiceFilter(
         queryset=User.objects.all(),
         label=_('User (ID)'),

+ 1 - 0
netbox/dcim/filtersets.py

@@ -1764,6 +1764,7 @@ class PowerOutletFilterSet(
 
 class MACAddressFilterSet(NetBoxModelFilterSet):
     mac_address = MultiValueMACAddressFilter()
+    assigned_object_type = ContentTypeFilter()
     device = MultiValueCharFilter(
         method='filter_device',
         field_name='name',

+ 2 - 0
netbox/ipam/filtersets.py

@@ -595,6 +595,7 @@ class IPAddressFilterSet(NetBoxModelFilterSet, TenancyFilterSet, ContactModelFil
         to_field_name='rd',
         label=_('VRF (RD)'),
     )
+    assigned_object_type = ContentTypeFilter()
     device = MultiValueCharFilter(
         method='filter_device',
         field_name='name',
@@ -1152,6 +1153,7 @@ class ServiceTemplateFilterSet(NetBoxModelFilterSet):
 
 
 class ServiceFilterSet(ContactModelFilterSet, NetBoxModelFilterSet):
+    parent_object_type = ContentTypeFilter()
     device = MultiValueCharFilter(
         method='filter_device',
         field_name='name',