From f396847d54fed1f3d66e4d98f3159cff4e02278c Mon Sep 17 00:00:00 2001 From: Brian Tiemann Date: Sun, 20 Oct 2024 18:14:12 -0400 Subject: [PATCH] Make vlan_translation_policy fields on filtersets more consistent with existing __name convention --- netbox/dcim/filtersets.py | 6 +++--- netbox/dcim/forms/model_forms.py | 7 ++++++- netbox/dcim/tests/test_filtersets.py | 4 ++-- netbox/ipam/forms/model_forms.py | 2 -- netbox/virtualization/filtersets.py | 2 +- netbox/virtualization/forms/model_forms.py | 8 +++++++- netbox/virtualization/tests/test_filtersets.py | 4 ++-- 7 files changed, 21 insertions(+), 12 deletions(-) diff --git a/netbox/dcim/filtersets.py b/netbox/dcim/filtersets.py index b076dd242..e982fa329 100644 --- a/netbox/dcim/filtersets.py +++ b/netbox/dcim/filtersets.py @@ -8,7 +8,7 @@ from circuits.models import CircuitTermination from extras.filtersets import LocalConfigContextFilterSet from extras.models import ConfigTemplate from ipam.filtersets import PrimaryIPFilterSet -from ipam.models import ASN, IPAddress, VRF, VLANTranslationPolicy +from ipam.models import ASN, IPAddress, VLANTranslationPolicy, VRF from netbox.choices import ColorChoices from netbox.filtersets import ( BaseFilterSet, ChangeLoggedModelFilterSet, OrganizationalModelFilterSet, NetBoxModelFilterSet, @@ -1738,11 +1738,11 @@ class InterfaceFilterSet( queryset=VLANTranslationPolicy.objects.all(), label=_('VLAN Translation Policy (ID)'), ) - vlan_translation_policy_name = django_filters.ModelMultipleChoiceFilter( + vlan_translation_policy = django_filters.ModelMultipleChoiceFilter( field_name='vlan_translation_policy__name', queryset=VLANTranslationPolicy.objects.all(), to_field_name='name', - label=_('VLAN Translation Policy (name)'), + label=_('VLAN Translation Policy'), ) class Meta: diff --git a/netbox/dcim/forms/model_forms.py b/netbox/dcim/forms/model_forms.py index 8bc776fdf..378224366 100644 --- a/netbox/dcim/forms/model_forms.py +++ b/netbox/dcim/forms/model_forms.py @@ -7,7 +7,7 @@ from dcim.choices import * from dcim.constants import * from dcim.models import * from extras.models import ConfigTemplate -from ipam.models import ASN, IPAddress, VLAN, VLANGroup, VRF +from ipam.models import ASN, IPAddress, VLAN, VLANGroup, VLANTranslationPolicy, VRF from netbox.forms import NetBoxModelForm from tenancy.forms import TenancyForm from users.models import User @@ -1382,6 +1382,11 @@ class InterfaceForm(InterfaceCommonForm, ModularDeviceComponentForm): required=False, label=_('WWN') ) + vlan_translation_policy = DynamicModelChoiceField( + queryset=VLANTranslationPolicy.objects.all(), + required=False, + label=_('VLAN Translation Policy') + ) fieldsets = ( FieldSet( diff --git a/netbox/dcim/tests/test_filtersets.py b/netbox/dcim/tests/test_filtersets.py index 512efa93f..29fdf96e5 100644 --- a/netbox/dcim/tests/test_filtersets.py +++ b/netbox/dcim/tests/test_filtersets.py @@ -4,7 +4,7 @@ from circuits.models import Circuit, CircuitTermination, CircuitType, Provider from dcim.choices import * from dcim.filtersets import * from dcim.models import * -from ipam.models import ASN, IPAddress, RIR, VRF, VLANTranslationPolicy +from ipam.models import ASN, IPAddress, RIR, VLANTranslationPolicy, VRF from netbox.choices import ColorChoices, WeightUnitChoices from tenancy.models import Tenant, TenantGroup from users.models import User @@ -4032,7 +4032,7 @@ class InterfaceTestCase(TestCase, DeviceComponentFilterSetTests, ChangeLoggedFil vlan_translation_policies = VLANTranslationPolicy.objects.all()[:2] params = {'vlan_translation_policy_id': [vlan_translation_policies[0].pk, vlan_translation_policies[1].pk]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) - params = {'vlan_translation_policy_name': [vlan_translation_policies[0].name, vlan_translation_policies[1].name]} + params = {'vlan_translation_policy': [vlan_translation_policies[0].name, vlan_translation_policies[1].name]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) diff --git a/netbox/ipam/forms/model_forms.py b/netbox/ipam/forms/model_forms.py index 50f49cdb6..c7df54df5 100644 --- a/netbox/ipam/forms/model_forms.py +++ b/netbox/ipam/forms/model_forms.py @@ -710,8 +710,6 @@ class VLANTranslationRuleForm(NetBoxModelForm): policy = DynamicModelChoiceField( label=_('Policy'), queryset=VLANTranslationPolicy.objects.all(), - required=False, - null_option='None', selector=True ) diff --git a/netbox/virtualization/filtersets.py b/netbox/virtualization/filtersets.py index 9f3fff3f1..ffd957f97 100644 --- a/netbox/virtualization/filtersets.py +++ b/netbox/virtualization/filtersets.py @@ -306,7 +306,7 @@ class VMInterfaceFilterSet(NetBoxModelFilterSet, CommonInterfaceFilterSet): queryset=VLANTranslationPolicy.objects.all(), label=_('VLAN Translation Policy (ID)'), ) - vlan_translation_policy_name = django_filters.ModelMultipleChoiceFilter( + vlan_translation_policy = django_filters.ModelMultipleChoiceFilter( field_name='vlan_translation_policy__name', queryset=VLANTranslationPolicy.objects.all(), to_field_name='name', diff --git a/netbox/virtualization/forms/model_forms.py b/netbox/virtualization/forms/model_forms.py index 9ffc914ab..400e67385 100644 --- a/netbox/virtualization/forms/model_forms.py +++ b/netbox/virtualization/forms/model_forms.py @@ -6,7 +6,7 @@ from django.utils.translation import gettext_lazy as _ from dcim.forms.common import InterfaceCommonForm from dcim.models import Device, DeviceRole, Platform, Rack, Region, Site, SiteGroup from extras.models import ConfigTemplate -from ipam.models import IPAddress, VLAN, VLANGroup, VRF +from ipam.models import IPAddress, VLAN, VLANGroup, VLANTranslationPolicy, VRF from netbox.forms import NetBoxModelForm from tenancy.forms import TenancyForm from utilities.forms import ConfirmationForm @@ -343,6 +343,11 @@ class VMInterfaceForm(InterfaceCommonForm, VMComponentForm): required=False, label=_('VRF') ) + vlan_translation_policy = DynamicModelChoiceField( + queryset=VLANTranslationPolicy.objects.all(), + required=False, + label=_('VLAN Translation Policy') + ) fieldsets = ( FieldSet('virtual_machine', 'name', 'description', 'tags', name=_('Interface')), @@ -350,6 +355,7 @@ class VMInterfaceForm(InterfaceCommonForm, VMComponentForm): FieldSet('mtu', 'enabled', name=_('Operation')), FieldSet('parent', 'bridge', name=_('Related Interfaces')), FieldSet('mode', 'vlan_group', 'untagged_vlan', 'tagged_vlans', name=_('802.1Q Switching')), + FieldSet('vlan_translation_policy', name=_('VLAN Translation')) ) class Meta: diff --git a/netbox/virtualization/tests/test_filtersets.py b/netbox/virtualization/tests/test_filtersets.py index 6f0fdfa0a..cd598274f 100644 --- a/netbox/virtualization/tests/test_filtersets.py +++ b/netbox/virtualization/tests/test_filtersets.py @@ -1,7 +1,7 @@ from django.test import TestCase from dcim.models import Device, DeviceRole, Platform, Region, Site, SiteGroup -from ipam.models import IPAddress, VRF, VLANTranslationPolicy +from ipam.models import IPAddress, VLANTranslationPolicy, VRF from tenancy.models import Tenant, TenantGroup from utilities.testing import ChangeLoggedFilterSetTests, create_test_device from virtualization.choices import * @@ -671,7 +671,7 @@ class VMInterfaceTestCase(TestCase, ChangeLoggedFilterSetTests): vlan_translation_policies = VLANTranslationPolicy.objects.all()[:2] params = {'vlan_translation_policy_id': [vlan_translation_policies[0].pk, vlan_translation_policies[1].pk]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - params = {'vlan_translation_policy_name': [vlan_translation_policies[0].name, vlan_translation_policies[1].name]} + params = {'vlan_translation_policy': [vlan_translation_policies[0].name, vlan_translation_policies[1].name]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)