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
This commit is contained in:
Martin Hauser 2025-10-15 18:24:42 +02:00
parent b4acc3fb36
commit f23ee0a46f
No known key found for this signature in database
3 changed files with 5 additions and 0 deletions

View File

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

View File

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

View File

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