Просмотр исходного кода

Closes #3420: Serial number filter for racks, devices, and inventory items is now case-insensitive

Jeremy Stretch 6 лет назад
Родитель
Сommit
dd4dafa7be
2 измененных файлов с 16 добавлено и 3 удалено
  1. 4 0
      CHANGELOG.md
  2. 12 3
      netbox/dcim/filters.py

+ 4 - 0
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
 

+ 12 - 3
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():