فهرست منبع

15761 filter IKE Proposals on IKE Policy detail view (#15766)

* 15761 filter IKEAProposals on IKEAPolicy detail view

* Add test for ike_policy filter

---------

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
Arthur Hanson 1 سال پیش
والد
کامیت
88facbafbb
2فایلهای تغییر یافته به همراه28 افزوده شده و 0 حذف شده
  1. 11 0
      netbox/vpn/filtersets.py
  2. 17 0
      netbox/vpn/tests/test_filtersets.py

+ 11 - 0
netbox/vpn/filtersets.py

@@ -136,6 +136,17 @@ class IKEProposalFilterSet(NetBoxModelFilterSet):
     group = django_filters.MultipleChoiceFilter(
     group = django_filters.MultipleChoiceFilter(
         choices=DHGroupChoices
         choices=DHGroupChoices
     )
     )
+    ike_policy_id = django_filters.ModelMultipleChoiceFilter(
+        field_name='ike_policies',
+        queryset=IKEPolicy.objects.all(),
+        label=_('IKE policy (ID)'),
+    )
+    ike_policy = django_filters.ModelMultipleChoiceFilter(
+        field_name='ike_policies__name',
+        queryset=IKEPolicy.objects.all(),
+        to_field_name='name',
+        label=_('IKE policy (name)'),
+    )
 
 
     class Meta:
     class Meta:
         model = IKEProposal
         model = IKEProposal

+ 17 - 0
netbox/vpn/tests/test_filtersets.py

@@ -331,6 +331,16 @@ class IKEProposalTestCase(TestCase, ChangeLoggedFilterSetTests):
         )
         )
         IKEProposal.objects.bulk_create(ike_proposals)
         IKEProposal.objects.bulk_create(ike_proposals)
 
 
+        ike_policies = (
+            IKEPolicy(name='IKE Policy 1'),
+            IKEPolicy(name='IKE Policy 2'),
+            IKEPolicy(name='IKE Policy 3'),
+        )
+        IKEPolicy.objects.bulk_create(ike_policies)
+        ike_policies[0].proposals.add(ike_proposals[0])
+        ike_policies[1].proposals.add(ike_proposals[1])
+        ike_policies[2].proposals.add(ike_proposals[2])
+
     def test_q(self):
     def test_q(self):
         params = {'q': 'foobar1'}
         params = {'q': 'foobar1'}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
@@ -369,6 +379,13 @@ class IKEProposalTestCase(TestCase, ChangeLoggedFilterSetTests):
         params = {'sa_lifetime': [1000, 2000]}
         params = {'sa_lifetime': [1000, 2000]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
+    def test_ike_policy(self):
+        ike_policies = IKEPolicy.objects.all()[:2]
+        params = {'ike_policy_id': [ike_policies[0].pk, ike_policies[1].pk]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        params = {'ike_policy': [ike_policies[0].name, ike_policies[1].name]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+
 
 
 class IKEPolicyTestCase(TestCase, ChangeLoggedFilterSetTests):
 class IKEPolicyTestCase(TestCase, ChangeLoggedFilterSetTests):
     queryset = IKEPolicy.objects.all()
     queryset = IKEPolicy.objects.all()