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

Fixes #11631: Fix filtering changelog & journal entries by multiple content type IDs

jeremystretch 2 лет назад
Родитель
Сommit
a71a59c088

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

@@ -17,6 +17,7 @@
 
 * [#11470](https://github.com/netbox-community/netbox/issues/11470) - Avoid raising exception when filtering IPs by an invalid address
 * [#11565](https://github.com/netbox-community/netbox/issues/11565) - Apply custom field defaults to IP address created during FHRP group creation
+* [#11631](https://github.com/netbox-community/netbox/issues/11631) - Fix filtering changelog & journal entries by multiple content type IDs
 * [#11758](https://github.com/netbox-community/netbox/issues/11758) - Support non-URL-safe characters in plugin menu titles
 * [#11796](https://github.com/netbox-community/netbox/issues/11796) - When importing devices, restrict rack by location only if the location field is specified
 * [#11819](https://github.com/netbox-community/netbox/issues/11819) - Fix filtering of cable terminations by object type

+ 6 - 0
netbox/extras/filtersets.py

@@ -210,6 +210,9 @@ class ImageAttachmentFilterSet(BaseFilterSet):
 class JournalEntryFilterSet(NetBoxModelFilterSet):
     created = django_filters.DateTimeFromToRangeFilter()
     assigned_object_type = ContentTypeFilter()
+    assigned_object_type_id = django_filters.ModelMultipleChoiceFilter(
+        queryset=ContentType.objects.all()
+    )
     created_by_id = django_filters.ModelMultipleChoiceFilter(
         queryset=User.objects.all(),
         label=_('User (ID)'),
@@ -458,6 +461,9 @@ class ObjectChangeFilterSet(BaseFilterSet):
     )
     time = django_filters.DateTimeFromToRangeFilter()
     changed_object_type = ContentTypeFilter()
+    changed_object_type_id = django_filters.ModelMultipleChoiceFilter(
+        queryset=ContentType.objects.all()
+    )
     user_id = django_filters.ModelMultipleChoiceFilter(
         queryset=User.objects.all(),
         label=_('User (ID)'),

+ 2 - 4
netbox/extras/tests/test_filtersets.py

@@ -502,7 +502,7 @@ class JournalEntryTestCase(TestCase, ChangeLoggedFilterSetTests):
     def test_assigned_object_type(self):
         params = {'assigned_object_type': 'dcim.site'}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
-        params = {'assigned_object_type_id': ContentType.objects.get(app_label='dcim', model='site').pk}
+        params = {'assigned_object_type_id': [ContentType.objects.get(app_label='dcim', model='site').pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
     def test_assigned_object(self):
@@ -876,7 +876,5 @@ class ObjectChangeTestCase(TestCase, BaseFilterSetTests):
     def test_changed_object_type(self):
         params = {'changed_object_type': 'dcim.site'}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
-
-    def test_changed_object_type_id(self):
-        params = {'changed_object_type_id': ContentType.objects.get(app_label='dcim', model='site').pk}
+        params = {'changed_object_type_id': [ContentType.objects.get(app_label='dcim', model='site').pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)