Ver Fonte

Fixes #5498: Fix filtering rack reservations by username

Jeremy Stretch há 5 anos atrás
pai
commit
b1402f3bae

+ 1 - 0
docs/release-notes/version-2.10.md

@@ -15,6 +15,7 @@
 * [#5484](https://github.com/netbox-community/netbox/issues/5484) - Fix "tagged" indication in VLAN members list
 * [#5484](https://github.com/netbox-community/netbox/issues/5484) - Fix "tagged" indication in VLAN members list
 * [#5486](https://github.com/netbox-community/netbox/issues/5486) - Optimize retrieval of config context data for device/VM REST API views
 * [#5486](https://github.com/netbox-community/netbox/issues/5486) - Optimize retrieval of config context data for device/VM REST API views
 * [#5487](https://github.com/netbox-community/netbox/issues/5487) - Support filtering rack type/width with multiple values
 * [#5487](https://github.com/netbox-community/netbox/issues/5487) - Support filtering rack type/width with multiple values
+* [#5498](https://github.com/netbox-community/netbox/issues/5498) - Fix filtering rack reservations by username
 
 
 ---
 ---
 
 

+ 1 - 1
netbox/dcim/filters.py

@@ -302,7 +302,7 @@ class RackReservationFilterSet(BaseFilterSet, TenancyFilterSet):
         label='User (ID)',
         label='User (ID)',
     )
     )
     user = django_filters.ModelMultipleChoiceFilter(
     user = django_filters.ModelMultipleChoiceFilter(
-        field_name='user',
+        field_name='user__username',
         queryset=User.objects.all(),
         queryset=User.objects.all(),
         to_field_name='username',
         to_field_name='username',
         label='User (name)',
         label='User (name)',

+ 2 - 3
netbox/dcim/tests/test_filters.py

@@ -514,9 +514,8 @@ class RackReservationTestCase(TestCase):
         users = User.objects.all()[:2]
         users = User.objects.all()[:2]
         params = {'user_id': [users[0].pk, users[1].pk]}
         params = {'user_id': [users[0].pk, users[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
-        # TODO: Filtering by username is broken
-        # params = {'user': [users[0].username, users[1].username]}
-        # self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        params = {'user': [users[0].username, users[1].username]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
     def test_tenant(self):
     def test_tenant(self):
         tenants = Tenant.objects.all()[:2]
         tenants = Tenant.objects.all()[:2]