Merge branch 'develop' into feature

This commit is contained in:
Jeremy Stretch
2024-04-22 13:23:42 -04:00
67 changed files with 3840 additions and 3326 deletions

View File

@@ -108,6 +108,8 @@ class TunnelTerminationSerializer(NetBoxModelSerializer):
@extend_schema_field(serializers.JSONField(allow_null=True))
def get_termination(self, obj):
if not obj.termination:
return None
serializer = get_serializer_for_model(obj.termination)
context = {'request': self.context['request']}
return serializer(obj.termination, nested=True, context=context).data

View File

@@ -147,6 +147,17 @@ class IKEProposalFilterSet(NetBoxModelFilterSet):
group = django_filters.MultipleChoiceFilter(
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:
model = IKEProposal

View File

@@ -92,7 +92,7 @@ class TunnelCreateForm(TunnelForm):
termination1_termination = DynamicModelChoiceField(
queryset=Interface.objects.all(),
required=False,
label=_('Interface'),
label=_('Tunnel interface'),
query_params={
'device_id': '$termination1_parent',
}
@@ -127,7 +127,7 @@ class TunnelCreateForm(TunnelForm):
termination2_termination = DynamicModelChoiceField(
queryset=Interface.objects.all(),
required=False,
label=_('Interface'),
label=_('Tunnel interface'),
query_params={
'device_id': '$termination2_parent',
}
@@ -237,7 +237,7 @@ class TunnelTerminationForm(NetBoxModelForm):
)
termination = DynamicModelChoiceField(
queryset=Interface.objects.all(),
label=_('Interface'),
label=_('Tunnel interface'),
query_params={
'device_id': '$parent',
}

View File

@@ -75,6 +75,7 @@ class L2VPNIndex(SearchIndex):
fields = (
('name', 100),
('slug', 110),
('identifier', 200),
('description', 500),
('comments', 5000),
)

View File

@@ -88,7 +88,7 @@ class TunnelTerminationTable(TenancyColumnsMixin, NetBoxTable):
verbose_name=_('Host')
)
termination = tables.Column(
verbose_name=_('Interface'),
verbose_name=_('Tunnel interface'),
linkify=True
)
ip_addresses = tables.ManyToManyColumn(

View File

@@ -385,6 +385,13 @@ class IKEProposalTestCase(TestCase, ChangeLoggedFilterSetTests):
params = {'sa_lifetime': [1000, 2000]}
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):
queryset = IKEPolicy.objects.all()