Renamed ipam FilterSets

This commit is contained in:
Jeremy Stretch 2020-01-09 20:37:26 -05:00
parent 97654b7585
commit 83c0d1ef44
5 changed files with 64 additions and 64 deletions

View File

@ -38,7 +38,7 @@ class VRFViewSet(CustomFieldModelViewSet):
prefix_count=get_subquery(Prefix, 'vrf') prefix_count=get_subquery(Prefix, 'vrf')
) )
serializer_class = serializers.VRFSerializer serializer_class = serializers.VRFSerializer
filterset_class = filters.VRFFilter filterset_class = filters.VRFFilterSet
# #
@ -50,7 +50,7 @@ class RIRViewSet(ModelViewSet):
aggregate_count=Count('aggregates') aggregate_count=Count('aggregates')
) )
serializer_class = serializers.RIRSerializer serializer_class = serializers.RIRSerializer
filterset_class = filters.RIRFilter filterset_class = filters.RIRFilterSet
# #
@ -60,7 +60,7 @@ class RIRViewSet(ModelViewSet):
class AggregateViewSet(CustomFieldModelViewSet): class AggregateViewSet(CustomFieldModelViewSet):
queryset = Aggregate.objects.prefetch_related('rir').prefetch_related('tags') queryset = Aggregate.objects.prefetch_related('rir').prefetch_related('tags')
serializer_class = serializers.AggregateSerializer serializer_class = serializers.AggregateSerializer
filterset_class = filters.AggregateFilter filterset_class = filters.AggregateFilterSet
# #
@ -73,7 +73,7 @@ class RoleViewSet(ModelViewSet):
vlan_count=get_subquery(VLAN, 'role') vlan_count=get_subquery(VLAN, 'role')
) )
serializer_class = serializers.RoleSerializer serializer_class = serializers.RoleSerializer
filterset_class = filters.RoleFilter filterset_class = filters.RoleFilterSet
# #
@ -83,7 +83,7 @@ class RoleViewSet(ModelViewSet):
class PrefixViewSet(CustomFieldModelViewSet): class PrefixViewSet(CustomFieldModelViewSet):
queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role', 'tags') queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role', 'tags')
serializer_class = serializers.PrefixSerializer serializer_class = serializers.PrefixSerializer
filterset_class = filters.PrefixFilter filterset_class = filters.PrefixFilterSet
@action(detail=True, url_path='available-prefixes', methods=['get', 'post']) @action(detail=True, url_path='available-prefixes', methods=['get', 'post'])
def available_prefixes(self, request, pk=None): def available_prefixes(self, request, pk=None):
@ -264,7 +264,7 @@ class IPAddressViewSet(CustomFieldModelViewSet):
'nat_outside', 'tags', 'nat_outside', 'tags',
) )
serializer_class = serializers.IPAddressSerializer serializer_class = serializers.IPAddressSerializer
filterset_class = filters.IPAddressFilter filterset_class = filters.IPAddressFilterSet
# #
@ -276,7 +276,7 @@ class VLANGroupViewSet(ModelViewSet):
vlan_count=Count('vlans') vlan_count=Count('vlans')
) )
serializer_class = serializers.VLANGroupSerializer serializer_class = serializers.VLANGroupSerializer
filterset_class = filters.VLANGroupFilter filterset_class = filters.VLANGroupFilterSet
# #
@ -290,7 +290,7 @@ class VLANViewSet(CustomFieldModelViewSet):
prefix_count=get_subquery(Prefix, 'role') prefix_count=get_subquery(Prefix, 'role')
) )
serializer_class = serializers.VLANSerializer serializer_class = serializers.VLANSerializer
filterset_class = filters.VLANFilter filterset_class = filters.VLANFilterSet
# #
@ -300,4 +300,4 @@ class VLANViewSet(CustomFieldModelViewSet):
class ServiceViewSet(ModelViewSet): class ServiceViewSet(ModelViewSet):
queryset = Service.objects.prefetch_related('device').prefetch_related('tags') queryset = Service.objects.prefetch_related('device').prefetch_related('tags')
serializer_class = serializers.ServiceSerializer serializer_class = serializers.ServiceSerializer
filterset_class = filters.ServiceFilter filterset_class = filters.ServiceFilterSet

View File

@ -14,19 +14,19 @@ from .models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLAN
__all__ = ( __all__ = (
'AggregateFilter', 'AggregateFilterSet',
'IPAddressFilter', 'IPAddressFilterSet',
'PrefixFilter', 'PrefixFilterSet',
'RIRFilter', 'RIRFilterSet',
'RoleFilter', 'RoleFilterSet',
'ServiceFilter', 'ServiceFilterSet',
'VLANFilter', 'VLANFilterSet',
'VLANGroupFilter', 'VLANGroupFilterSet',
'VRFFilter', 'VRFFilterSet',
) )
class VRFFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): class VRFFilterSet(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet):
id__in = NumericInFilter( id__in = NumericInFilter(
field_name='id', field_name='id',
lookup_expr='in' lookup_expr='in'
@ -51,7 +51,7 @@ class VRFFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet)
fields = ['name', 'rd', 'enforce_unique'] fields = ['name', 'rd', 'enforce_unique']
class RIRFilter(NameSlugSearchFilterSet): class RIRFilterSet(NameSlugSearchFilterSet):
id__in = NumericInFilter( id__in = NumericInFilter(
field_name='id', field_name='id',
lookup_expr='in' lookup_expr='in'
@ -62,7 +62,7 @@ class RIRFilter(NameSlugSearchFilterSet):
fields = ['name', 'slug', 'is_private'] fields = ['name', 'slug', 'is_private']
class AggregateFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet): class AggregateFilterSet(CustomFieldFilterSet, CreatedUpdatedFilterSet):
id__in = NumericInFilter( id__in = NumericInFilter(
field_name='id', field_name='id',
lookup_expr='in' lookup_expr='in'
@ -112,7 +112,7 @@ class AggregateFilter(CustomFieldFilterSet, CreatedUpdatedFilterSet):
return queryset.none() return queryset.none()
class RoleFilter(NameSlugSearchFilterSet): class RoleFilterSet(NameSlugSearchFilterSet):
q = django_filters.CharFilter( q = django_filters.CharFilter(
method='search', method='search',
label='Search', label='Search',
@ -123,7 +123,7 @@ class RoleFilter(NameSlugSearchFilterSet):
fields = ['id', 'name', 'slug'] fields = ['id', 'name', 'slug']
class PrefixFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): class PrefixFilterSet(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet):
id__in = NumericInFilter( id__in = NumericInFilter(
field_name='id', field_name='id',
lookup_expr='in' lookup_expr='in'
@ -271,7 +271,7 @@ class PrefixFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterS
return queryset.filter(prefix__net_mask_length=value) return queryset.filter(prefix__net_mask_length=value)
class IPAddressFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): class IPAddressFilterSet(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet):
id__in = NumericInFilter( id__in = NumericInFilter(
field_name='id', field_name='id',
lookup_expr='in' lookup_expr='in'
@ -398,7 +398,7 @@ class IPAddressFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilt
return queryset.exclude(interface__isnull=value) return queryset.exclude(interface__isnull=value)
class VLANGroupFilter(NameSlugSearchFilterSet): class VLANGroupFilterSet(NameSlugSearchFilterSet):
region_id = TreeNodeMultipleChoiceFilter( region_id = TreeNodeMultipleChoiceFilter(
queryset=Region.objects.all(), queryset=Region.objects.all(),
field_name='site__region__in', field_name='site__region__in',
@ -426,7 +426,7 @@ class VLANGroupFilter(NameSlugSearchFilterSet):
fields = ['id', 'name', 'slug'] fields = ['id', 'name', 'slug']
class VLANFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet): class VLANFilterSet(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet):
id__in = NumericInFilter( id__in = NumericInFilter(
field_name='id', field_name='id',
lookup_expr='in' lookup_expr='in'
@ -497,7 +497,7 @@ class VLANFilter(TenancyFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterSet
return queryset.filter(qs_filter) return queryset.filter(qs_filter)
class ServiceFilter(CreatedUpdatedFilterSet): class ServiceFilterSet(CreatedUpdatedFilterSet):
q = django_filters.CharFilter( q = django_filters.CharFilter(
method='search', method='search',
label='Search', label='Search',

View File

@ -9,7 +9,7 @@ from virtualization.models import Cluster, ClusterType, VirtualMachine
class VRFTestCase(TestCase): class VRFTestCase(TestCase):
queryset = VRF.objects.all() queryset = VRF.objects.all()
filterset = VRFFilter filterset = VRFFilterSet
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -46,7 +46,7 @@ class VRFTestCase(TestCase):
class RIRTestCase(TestCase): class RIRTestCase(TestCase):
queryset = RIR.objects.all() queryset = RIR.objects.all()
filterset = RIRFilter filterset = RIRFilterSet
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -83,7 +83,7 @@ class RIRTestCase(TestCase):
class AggregateTestCase(TestCase): class AggregateTestCase(TestCase):
queryset = Aggregate.objects.all() queryset = Aggregate.objects.all()
filterset = AggregateFilter filterset = AggregateFilterSet
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -128,7 +128,7 @@ class AggregateTestCase(TestCase):
class RoleTestCase(TestCase): class RoleTestCase(TestCase):
queryset = Role.objects.all() queryset = Role.objects.all()
filterset = RoleFilter filterset = RoleFilterSet
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -156,7 +156,7 @@ class RoleTestCase(TestCase):
class PrefixTestCase(TestCase): class PrefixTestCase(TestCase):
queryset = Prefix.objects.all() queryset = Prefix.objects.all()
filterset = PrefixFilter filterset = PrefixFilterSet
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -288,7 +288,7 @@ class PrefixTestCase(TestCase):
class IPAddressTestCase(TestCase): class IPAddressTestCase(TestCase):
queryset = IPAddress.objects.all() queryset = IPAddress.objects.all()
filterset = IPAddressFilter filterset = IPAddressFilterSet
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -424,7 +424,7 @@ class IPAddressTestCase(TestCase):
class VLANGroupTestCase(TestCase): class VLANGroupTestCase(TestCase):
queryset = VLANGroup.objects.all() queryset = VLANGroup.objects.all()
filterset = VLANGroupFilter filterset = VLANGroupFilterSet
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -483,7 +483,7 @@ class VLANGroupTestCase(TestCase):
class VLANTestCase(TestCase): class VLANTestCase(TestCase):
queryset = VLAN.objects.all() queryset = VLAN.objects.all()
filterset = VLANFilter filterset = VLANFilterSet
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):
@ -576,7 +576,7 @@ class VLANTestCase(TestCase):
class ServiceTestCase(TestCase): class ServiceTestCase(TestCase):
queryset = Service.objects.all() queryset = Service.objects.all()
filterset = ServiceFilter filterset = ServiceFilterSet
@classmethod @classmethod
def setUpTestData(cls): def setUpTestData(cls):

View File

@ -117,7 +117,7 @@ def add_available_vlans(vlan_group, vlans):
class VRFListView(PermissionRequiredMixin, ObjectListView): class VRFListView(PermissionRequiredMixin, ObjectListView):
permission_required = 'ipam.view_vrf' permission_required = 'ipam.view_vrf'
queryset = VRF.objects.prefetch_related('tenant') queryset = VRF.objects.prefetch_related('tenant')
filter = filters.VRFFilter filter = filters.VRFFilterSet
filter_form = forms.VRFFilterForm filter_form = forms.VRFFilterForm
table = tables.VRFTable table = tables.VRFTable
template_name = 'ipam/vrf_list.html' template_name = 'ipam/vrf_list.html'
@ -165,7 +165,7 @@ class VRFBulkImportView(PermissionRequiredMixin, BulkImportView):
class VRFBulkEditView(PermissionRequiredMixin, BulkEditView): class VRFBulkEditView(PermissionRequiredMixin, BulkEditView):
permission_required = 'ipam.change_vrf' permission_required = 'ipam.change_vrf'
queryset = VRF.objects.prefetch_related('tenant') queryset = VRF.objects.prefetch_related('tenant')
filter = filters.VRFFilter filter = filters.VRFFilterSet
table = tables.VRFTable table = tables.VRFTable
form = forms.VRFBulkEditForm form = forms.VRFBulkEditForm
default_return_url = 'ipam:vrf_list' default_return_url = 'ipam:vrf_list'
@ -174,7 +174,7 @@ class VRFBulkEditView(PermissionRequiredMixin, BulkEditView):
class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_vrf' permission_required = 'ipam.delete_vrf'
queryset = VRF.objects.prefetch_related('tenant') queryset = VRF.objects.prefetch_related('tenant')
filter = filters.VRFFilter filter = filters.VRFFilterSet
table = tables.VRFTable table = tables.VRFTable
default_return_url = 'ipam:vrf_list' default_return_url = 'ipam:vrf_list'
@ -186,7 +186,7 @@ class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
class RIRListView(PermissionRequiredMixin, ObjectListView): class RIRListView(PermissionRequiredMixin, ObjectListView):
permission_required = 'ipam.view_rir' permission_required = 'ipam.view_rir'
queryset = RIR.objects.annotate(aggregate_count=Count('aggregates')) queryset = RIR.objects.annotate(aggregate_count=Count('aggregates'))
filter = filters.RIRFilter filter = filters.RIRFilterSet
filter_form = forms.RIRFilterForm filter_form = forms.RIRFilterForm
table = tables.RIRDetailTable table = tables.RIRDetailTable
template_name = 'ipam/rir_list.html' template_name = 'ipam/rir_list.html'
@ -281,7 +281,7 @@ class RIRBulkImportView(PermissionRequiredMixin, BulkImportView):
class RIRBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RIRBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_rir' permission_required = 'ipam.delete_rir'
queryset = RIR.objects.annotate(aggregate_count=Count('aggregates')) queryset = RIR.objects.annotate(aggregate_count=Count('aggregates'))
filter = filters.RIRFilter filter = filters.RIRFilterSet
table = tables.RIRTable table = tables.RIRTable
default_return_url = 'ipam:rir_list' default_return_url = 'ipam:rir_list'
@ -296,7 +296,7 @@ class AggregateListView(PermissionRequiredMixin, ObjectListView):
child_count=RawSQL('SELECT COUNT(*) FROM ipam_prefix WHERE ipam_prefix.prefix <<= ipam_aggregate.prefix', ()) child_count=RawSQL('SELECT COUNT(*) FROM ipam_prefix WHERE ipam_prefix.prefix <<= ipam_aggregate.prefix', ())
) )
filter = filters.AggregateFilter filter = filters.AggregateFilterSet
filter_form = forms.AggregateFilterForm filter_form = forms.AggregateFilterForm
table = tables.AggregateDetailTable table = tables.AggregateDetailTable
template_name = 'ipam/aggregate_list.html' template_name = 'ipam/aggregate_list.html'
@ -391,7 +391,7 @@ class AggregateBulkImportView(PermissionRequiredMixin, BulkImportView):
class AggregateBulkEditView(PermissionRequiredMixin, BulkEditView): class AggregateBulkEditView(PermissionRequiredMixin, BulkEditView):
permission_required = 'ipam.change_aggregate' permission_required = 'ipam.change_aggregate'
queryset = Aggregate.objects.prefetch_related('rir') queryset = Aggregate.objects.prefetch_related('rir')
filter = filters.AggregateFilter filter = filters.AggregateFilterSet
table = tables.AggregateTable table = tables.AggregateTable
form = forms.AggregateBulkEditForm form = forms.AggregateBulkEditForm
default_return_url = 'ipam:aggregate_list' default_return_url = 'ipam:aggregate_list'
@ -400,7 +400,7 @@ class AggregateBulkEditView(PermissionRequiredMixin, BulkEditView):
class AggregateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class AggregateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_aggregate' permission_required = 'ipam.delete_aggregate'
queryset = Aggregate.objects.prefetch_related('rir') queryset = Aggregate.objects.prefetch_related('rir')
filter = filters.AggregateFilter filter = filters.AggregateFilterSet
table = tables.AggregateTable table = tables.AggregateTable
default_return_url = 'ipam:aggregate_list' default_return_url = 'ipam:aggregate_list'
@ -448,7 +448,7 @@ class RoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
class PrefixListView(PermissionRequiredMixin, ObjectListView): class PrefixListView(PermissionRequiredMixin, ObjectListView):
permission_required = 'ipam.view_prefix' permission_required = 'ipam.view_prefix'
queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role') queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role')
filter = filters.PrefixFilter filter = filters.PrefixFilterSet
filter_form = forms.PrefixFilterForm filter_form = forms.PrefixFilterForm
table = tables.PrefixDetailTable table = tables.PrefixDetailTable
template_name = 'ipam/prefix_list.html' template_name = 'ipam/prefix_list.html'
@ -620,7 +620,7 @@ class PrefixBulkImportView(PermissionRequiredMixin, BulkImportView):
class PrefixBulkEditView(PermissionRequiredMixin, BulkEditView): class PrefixBulkEditView(PermissionRequiredMixin, BulkEditView):
permission_required = 'ipam.change_prefix' permission_required = 'ipam.change_prefix'
queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role') queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role')
filter = filters.PrefixFilter filter = filters.PrefixFilterSet
table = tables.PrefixTable table = tables.PrefixTable
form = forms.PrefixBulkEditForm form = forms.PrefixBulkEditForm
default_return_url = 'ipam:prefix_list' default_return_url = 'ipam:prefix_list'
@ -629,7 +629,7 @@ class PrefixBulkEditView(PermissionRequiredMixin, BulkEditView):
class PrefixBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class PrefixBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_prefix' permission_required = 'ipam.delete_prefix'
queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role') queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role')
filter = filters.PrefixFilter filter = filters.PrefixFilterSet
table = tables.PrefixTable table = tables.PrefixTable
default_return_url = 'ipam:prefix_list' default_return_url = 'ipam:prefix_list'
@ -643,7 +643,7 @@ class IPAddressListView(PermissionRequiredMixin, ObjectListView):
queryset = IPAddress.objects.prefetch_related( queryset = IPAddress.objects.prefetch_related(
'vrf__tenant', 'tenant', 'nat_inside', 'interface__device', 'interface__virtual_machine' 'vrf__tenant', 'tenant', 'nat_inside', 'interface__device', 'interface__virtual_machine'
) )
filter = filters.IPAddressFilter filter = filters.IPAddressFilterSet
filter_form = forms.IPAddressFilterForm filter_form = forms.IPAddressFilterForm
table = tables.IPAddressDetailTable table = tables.IPAddressDetailTable
template_name = 'ipam/ipaddress_list.html' template_name = 'ipam/ipaddress_list.html'
@ -796,7 +796,7 @@ class IPAddressBulkImportView(PermissionRequiredMixin, BulkImportView):
class IPAddressBulkEditView(PermissionRequiredMixin, BulkEditView): class IPAddressBulkEditView(PermissionRequiredMixin, BulkEditView):
permission_required = 'ipam.change_ipaddress' permission_required = 'ipam.change_ipaddress'
queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant').prefetch_related('interface__device') queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant').prefetch_related('interface__device')
filter = filters.IPAddressFilter filter = filters.IPAddressFilterSet
table = tables.IPAddressTable table = tables.IPAddressTable
form = forms.IPAddressBulkEditForm form = forms.IPAddressBulkEditForm
default_return_url = 'ipam:ipaddress_list' default_return_url = 'ipam:ipaddress_list'
@ -805,7 +805,7 @@ class IPAddressBulkEditView(PermissionRequiredMixin, BulkEditView):
class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_ipaddress' permission_required = 'ipam.delete_ipaddress'
queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant').prefetch_related('interface__device') queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant').prefetch_related('interface__device')
filter = filters.IPAddressFilter filter = filters.IPAddressFilterSet
table = tables.IPAddressTable table = tables.IPAddressTable
default_return_url = 'ipam:ipaddress_list' default_return_url = 'ipam:ipaddress_list'
@ -817,7 +817,7 @@ class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
class VLANGroupListView(PermissionRequiredMixin, ObjectListView): class VLANGroupListView(PermissionRequiredMixin, ObjectListView):
permission_required = 'ipam.view_vlangroup' permission_required = 'ipam.view_vlangroup'
queryset = VLANGroup.objects.prefetch_related('site').annotate(vlan_count=Count('vlans')) queryset = VLANGroup.objects.prefetch_related('site').annotate(vlan_count=Count('vlans'))
filter = filters.VLANGroupFilter filter = filters.VLANGroupFilterSet
filter_form = forms.VLANGroupFilterForm filter_form = forms.VLANGroupFilterForm
table = tables.VLANGroupTable table = tables.VLANGroupTable
template_name = 'ipam/vlangroup_list.html' template_name = 'ipam/vlangroup_list.html'
@ -844,7 +844,7 @@ class VLANGroupBulkImportView(PermissionRequiredMixin, BulkImportView):
class VLANGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class VLANGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_vlangroup' permission_required = 'ipam.delete_vlangroup'
queryset = VLANGroup.objects.prefetch_related('site').annotate(vlan_count=Count('vlans')) queryset = VLANGroup.objects.prefetch_related('site').annotate(vlan_count=Count('vlans'))
filter = filters.VLANGroupFilter filter = filters.VLANGroupFilterSet
table = tables.VLANGroupTable table = tables.VLANGroupTable
default_return_url = 'ipam:vlangroup_list' default_return_url = 'ipam:vlangroup_list'
@ -893,7 +893,7 @@ class VLANGroupVLANsView(PermissionRequiredMixin, View):
class VLANListView(PermissionRequiredMixin, ObjectListView): class VLANListView(PermissionRequiredMixin, ObjectListView):
permission_required = 'ipam.view_vlan' permission_required = 'ipam.view_vlan'
queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role').prefetch_related('prefixes') queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role').prefetch_related('prefixes')
filter = filters.VLANFilter filter = filters.VLANFilterSet
filter_form = forms.VLANFilterForm filter_form = forms.VLANFilterForm
table = tables.VLANDetailTable table = tables.VLANDetailTable
template_name = 'ipam/vlan_list.html' template_name = 'ipam/vlan_list.html'
@ -968,7 +968,7 @@ class VLANBulkImportView(PermissionRequiredMixin, BulkImportView):
class VLANBulkEditView(PermissionRequiredMixin, BulkEditView): class VLANBulkEditView(PermissionRequiredMixin, BulkEditView):
permission_required = 'ipam.change_vlan' permission_required = 'ipam.change_vlan'
queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role') queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role')
filter = filters.VLANFilter filter = filters.VLANFilterSet
table = tables.VLANTable table = tables.VLANTable
form = forms.VLANBulkEditForm form = forms.VLANBulkEditForm
default_return_url = 'ipam:vlan_list' default_return_url = 'ipam:vlan_list'
@ -977,7 +977,7 @@ class VLANBulkEditView(PermissionRequiredMixin, BulkEditView):
class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_vlan' permission_required = 'ipam.delete_vlan'
queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role') queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role')
filter = filters.VLANFilter filter = filters.VLANFilterSet
table = tables.VLANTable table = tables.VLANTable
default_return_url = 'ipam:vlan_list' default_return_url = 'ipam:vlan_list'
@ -989,7 +989,7 @@ class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
class ServiceListView(PermissionRequiredMixin, ObjectListView): class ServiceListView(PermissionRequiredMixin, ObjectListView):
permission_required = 'ipam.view_service' permission_required = 'ipam.view_service'
queryset = Service.objects.prefetch_related('device', 'virtual_machine') queryset = Service.objects.prefetch_related('device', 'virtual_machine')
filter = filters.ServiceFilter filter = filters.ServiceFilterSet
filter_form = forms.ServiceFilterForm filter_form = forms.ServiceFilterForm
table = tables.ServiceTable table = tables.ServiceTable
template_name = 'ipam/service_list.html' template_name = 'ipam/service_list.html'
@ -1036,7 +1036,7 @@ class ServiceDeleteView(PermissionRequiredMixin, ObjectDeleteView):
class ServiceBulkEditView(PermissionRequiredMixin, BulkEditView): class ServiceBulkEditView(PermissionRequiredMixin, BulkEditView):
permission_required = 'ipam.change_service' permission_required = 'ipam.change_service'
queryset = Service.objects.prefetch_related('device', 'virtual_machine') queryset = Service.objects.prefetch_related('device', 'virtual_machine')
filter = filters.ServiceFilter filter = filters.ServiceFilterSet
table = tables.ServiceTable table = tables.ServiceTable
form = forms.ServiceBulkEditForm form = forms.ServiceBulkEditForm
default_return_url = 'ipam:service_list' default_return_url = 'ipam:service_list'
@ -1045,6 +1045,6 @@ class ServiceBulkEditView(PermissionRequiredMixin, BulkEditView):
class ServiceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ServiceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_service' permission_required = 'ipam.delete_service'
queryset = Service.objects.prefetch_related('device', 'virtual_machine') queryset = Service.objects.prefetch_related('device', 'virtual_machine')
filter = filters.ServiceFilter filter = filters.ServiceFilterSet
table = tables.ServiceTable table = tables.ServiceTable
default_return_url = 'ipam:service_list' default_return_url = 'ipam:service_list'

View File

@ -22,7 +22,7 @@ from dcim.tables import (
VirtualChassisTable, VirtualChassisTable,
) )
from extras.models import ObjectChange, ReportResult from extras.models import ObjectChange, ReportResult
from ipam.filters import AggregateFilter, IPAddressFilter, PrefixFilter, VLANFilter, VRFFilter from ipam.filters import AggregateFilterSet, IPAddressFilterSet, PrefixFilterSet, VLANFilterSet, VRFFilterSet
from ipam.models import Aggregate, IPAddress, Prefix, VLAN, VRF from ipam.models import Aggregate, IPAddress, Prefix, VLAN, VRF
from ipam.tables import AggregateTable, IPAddressTable, PrefixTable, VLANTable, VRFTable from ipam.tables import AggregateTable, IPAddressTable, PrefixTable, VLANTable, VRFTable
from secrets.filters import SecretFilter from secrets.filters import SecretFilter
@ -143,35 +143,35 @@ SEARCH_TYPES = OrderedDict((
('vrf', { ('vrf', {
'permission': 'ipam.view_vrf', 'permission': 'ipam.view_vrf',
'queryset': VRF.objects.prefetch_related('tenant'), 'queryset': VRF.objects.prefetch_related('tenant'),
'filter': VRFFilter, 'filter': VRFFilterSet,
'table': VRFTable, 'table': VRFTable,
'url': 'ipam:vrf_list', 'url': 'ipam:vrf_list',
}), }),
('aggregate', { ('aggregate', {
'permission': 'ipam.view_aggregate', 'permission': 'ipam.view_aggregate',
'queryset': Aggregate.objects.prefetch_related('rir'), 'queryset': Aggregate.objects.prefetch_related('rir'),
'filter': AggregateFilter, 'filter': AggregateFilterSet,
'table': AggregateTable, 'table': AggregateTable,
'url': 'ipam:aggregate_list', 'url': 'ipam:aggregate_list',
}), }),
('prefix', { ('prefix', {
'permission': 'ipam.view_prefix', 'permission': 'ipam.view_prefix',
'queryset': Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role'), 'queryset': Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role'),
'filter': PrefixFilter, 'filter': PrefixFilterSet,
'table': PrefixTable, 'table': PrefixTable,
'url': 'ipam:prefix_list', 'url': 'ipam:prefix_list',
}), }),
('ipaddress', { ('ipaddress', {
'permission': 'ipam.view_ipaddress', 'permission': 'ipam.view_ipaddress',
'queryset': IPAddress.objects.prefetch_related('vrf__tenant', 'tenant'), 'queryset': IPAddress.objects.prefetch_related('vrf__tenant', 'tenant'),
'filter': IPAddressFilter, 'filter': IPAddressFilterSet,
'table': IPAddressTable, 'table': IPAddressTable,
'url': 'ipam:ipaddress_list', 'url': 'ipam:ipaddress_list',
}), }),
('vlan', { ('vlan', {
'permission': 'ipam.view_vlan', 'permission': 'ipam.view_vlan',
'queryset': VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role'), 'queryset': VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role'),
'filter': VLANFilter, 'filter': VLANFilterSet,
'table': VLANTable, 'table': VLANTable,
'url': 'ipam:vlan_list', 'url': 'ipam:vlan_list',
}), }),