diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e049b645..ac8b460c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ v2.6.3 (FUTURE) ## Bug Fixes +* [#3420](https://github.com/netbox-community/netbox/issues/3420) - Serial number filter for racks, devices, and inventory items is now case-insensitive + +## Enhancements + * [#3405](https://github.com/netbox-community/netbox/issues/3405) - Fix population of power port/outlet details on device creation * [#3422](https://github.com/netbox-community/netbox/issues/3422) - Prevent navigation menu from overlapping page content diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index a063a6b83..be1b02703 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -160,12 +160,15 @@ class RackFilter(TenancyFilterSet, CustomFieldFilterSet): to_field_name='slug', label='Role (slug)', ) + serial = django_filters.CharFilter( + lookup_expr='iexact' + ) tag = TagFilter() class Meta: model = Rack fields = [ - 'id', 'name', 'facility_id', 'serial', 'asset_tag', 'type', 'width', 'u_height', 'desc_units', + 'id', 'name', 'facility_id', 'asset_tag', 'type', 'width', 'u_height', 'desc_units', 'outer_width', 'outer_depth', 'outer_unit', ] @@ -519,6 +522,9 @@ class DeviceFilter(TenancyFilterSet, CustomFieldFilterSet): field_name='interfaces__mac_address', label='MAC address', ) + serial = django_filters.CharFilter( + lookup_expr='iexact' + ) has_primary_ip = django_filters.BooleanFilter( method='_has_primary_ip', label='Has a primary IP', @@ -560,7 +566,7 @@ class DeviceFilter(TenancyFilterSet, CustomFieldFilterSet): class Meta: model = Device - fields = ['id', 'name', 'serial', 'asset_tag', 'face', 'position', 'vc_position', 'vc_priority'] + fields = ['id', 'name', 'asset_tag', 'face', 'position', 'vc_position', 'vc_priority'] def search(self, queryset, name, value): if not value.strip(): @@ -847,10 +853,13 @@ class InventoryItemFilter(DeviceComponentFilterSet): to_field_name='slug', label='Manufacturer (slug)', ) + serial = django_filters.CharFilter( + lookup_expr='iexact' + ) class Meta: model = InventoryItem - fields = ['id', 'name', 'part_id', 'serial', 'asset_tag', 'discovered'] + fields = ['id', 'name', 'part_id', 'asset_tag', 'discovered'] def search(self, queryset, name, value): if not value.strip():