1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Replaced all object-specific BulkDeleteForms with the stock form provided by utilities.BulkDeleteView

This commit is contained in:
Jeremy Stretch
2016-07-25 17:02:53 -04:00
parent d47bf4ab6b
commit 450c51604c
8 changed files with 4 additions and 115 deletions

View File

@ -3,8 +3,7 @@ from django.db.models import Count
from dcim.models import Site, Device, Interface, Rack, IFACE_FF_VIRTUAL from dcim.models import Site, Device, Interface, Rack, IFACE_FF_VIRTUAL
from utilities.forms import ( from utilities.forms import (
APISelect, BootstrapMixin, BulkImportForm, CommentField, ConfirmationForm, CSVDataField, Livesearch, SmallTextarea, APISelect, BootstrapMixin, BulkImportForm, CommentField, CSVDataField, Livesearch, SmallTextarea, SlugField,
SlugField,
) )
from .models import Circuit, CircuitType, Provider from .models import Circuit, CircuitType, Provider
@ -55,10 +54,6 @@ class ProviderBulkEditForm(forms.Form, BootstrapMixin):
comments = CommentField() comments = CommentField()
class ProviderBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=Provider.objects.all(), widget=forms.MultipleHiddenInput)
def provider_site_choices(): def provider_site_choices():
site_choices = Site.objects.all() site_choices = Site.objects.all()
return [(s.slug, s.name) for s in site_choices] return [(s.slug, s.name) for s in site_choices]
@ -81,10 +76,6 @@ class CircuitTypeForm(forms.ModelForm, BootstrapMixin):
fields = ['name', 'slug'] fields = ['name', 'slug']
class CircuitTypeBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=CircuitType.objects.all(), widget=forms.MultipleHiddenInput)
# #
# Circuits # Circuits
# #
@ -191,10 +182,6 @@ class CircuitBulkEditForm(forms.Form, BootstrapMixin):
comments = CommentField() comments = CommentField()
class CircuitBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=Circuit.objects.all(), widget=forms.MultipleHiddenInput)
def circuit_type_choices(): def circuit_type_choices():
type_choices = CircuitType.objects.annotate(circuit_count=Count('circuits')) type_choices = CircuitType.objects.annotate(circuit_count=Count('circuits'))
return [(t.slug, u'{} ({})'.format(t.name, t.circuit_count)) for t in type_choices] return [(t.slug, u'{} ({})'.format(t.name, t.circuit_count)) for t in type_choices]

View File

@ -76,7 +76,6 @@ class ProviderBulkEditView(PermissionRequiredMixin, BulkEditView):
class ProviderBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ProviderBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'circuits.delete_provider' permission_required = 'circuits.delete_provider'
cls = Provider cls = Provider
form = forms.ProviderBulkDeleteForm
default_redirect_url = 'circuits:provider_list' default_redirect_url = 'circuits:provider_list'
@ -102,7 +101,6 @@ class CircuitTypeEditView(PermissionRequiredMixin, ObjectEditView):
class CircuitTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class CircuitTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'circuits.delete_circuittype' permission_required = 'circuits.delete_circuittype'
cls = CircuitType cls = CircuitType
form = forms.CircuitTypeBulkDeleteForm
default_redirect_url = 'circuits:circuittype_list' default_redirect_url = 'circuits:circuittype_list'
@ -171,5 +169,4 @@ class CircuitBulkEditView(PermissionRequiredMixin, BulkEditView):
class CircuitBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class CircuitBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'circuits.delete_circuit' permission_required = 'circuits.delete_circuit'
cls = Circuit cls = Circuit
form = forms.CircuitBulkDeleteForm
default_redirect_url = 'circuits:circuit_list' default_redirect_url = 'circuits:circuit_list'

View File

@ -5,7 +5,7 @@ from django.db.models import Count, Q
from ipam.models import IPAddress from ipam.models import IPAddress
from utilities.forms import ( from utilities.forms import (
APISelect, BootstrapMixin, BulkImportForm, CommentField, ConfirmationForm, CSVDataField, ExpandableNameField, APISelect, BootstrapMixin, BulkImportForm, CommentField, CSVDataField, ExpandableNameField,
FlexibleModelChoiceField, Livesearch, SelectWithDisabled, SmallTextarea, SlugField, FlexibleModelChoiceField, Livesearch, SelectWithDisabled, SmallTextarea, SlugField,
) )
@ -85,10 +85,6 @@ class RackGroupForm(forms.ModelForm, BootstrapMixin):
fields = ['site', 'name', 'slug'] fields = ['site', 'name', 'slug']
class RackGroupBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=RackGroup.objects.all(), widget=forms.MultipleHiddenInput)
def rackgroup_site_choices(): def rackgroup_site_choices():
site_choices = Site.objects.annotate(rack_count=Count('rack_groups')) site_choices = Site.objects.annotate(rack_count=Count('rack_groups'))
return [(s.slug, u'{} ({})'.format(s.name, s.rack_count)) for s in site_choices] return [(s.slug, u'{} ({})'.format(s.name, s.rack_count)) for s in site_choices]
@ -169,10 +165,6 @@ class RackBulkEditForm(forms.Form, BootstrapMixin):
comments = CommentField() comments = CommentField()
class RackBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=Rack.objects.all(), widget=forms.MultipleHiddenInput)
def rack_site_choices(): def rack_site_choices():
site_choices = Site.objects.annotate(rack_count=Count('racks')) site_choices = Site.objects.annotate(rack_count=Count('racks'))
return [(s.slug, u'{} ({})'.format(s.name, s.rack_count)) for s in site_choices] return [(s.slug, u'{} ({})'.format(s.name, s.rack_count)) for s in site_choices]
@ -202,10 +194,6 @@ class ManufacturerForm(forms.ModelForm, BootstrapMixin):
fields = ['name', 'slug'] fields = ['name', 'slug']
class ManufacturerBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=Manufacturer.objects.all(), widget=forms.MultipleHiddenInput)
# #
# Device types # Device types
# #
@ -225,10 +213,6 @@ class DeviceTypeBulkEditForm(forms.Form, BootstrapMixin):
u_height = forms.IntegerField(min_value=1, required=False) u_height = forms.IntegerField(min_value=1, required=False)
class DeviceTypeBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=DeviceType.objects.all(), widget=forms.MultipleHiddenInput)
def devicetype_manufacturer_choices(): def devicetype_manufacturer_choices():
manufacturer_choices = Manufacturer.objects.annotate(devicetype_count=Count('device_types')) manufacturer_choices = Manufacturer.objects.annotate(devicetype_count=Count('device_types'))
return [(m.slug, u'{} ({})'.format(m.name, m.devicetype_count)) for m in manufacturer_choices] return [(m.slug, u'{} ({})'.format(m.name, m.devicetype_count)) for m in manufacturer_choices]
@ -251,10 +235,6 @@ class ConsolePortTemplateForm(forms.ModelForm, BootstrapMixin):
fields = ['name_pattern'] fields = ['name_pattern']
class ConsolePortTemplateBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=ConsolePortTemplate.objects.all(), widget=forms.MultipleHiddenInput)
class ConsoleServerPortTemplateForm(forms.ModelForm, BootstrapMixin): class ConsoleServerPortTemplateForm(forms.ModelForm, BootstrapMixin):
name_pattern = ExpandableNameField(label='Name') name_pattern = ExpandableNameField(label='Name')
@ -263,10 +243,6 @@ class ConsoleServerPortTemplateForm(forms.ModelForm, BootstrapMixin):
fields = ['name_pattern'] fields = ['name_pattern']
class ConsoleServerPortTemplateBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=ConsoleServerPortTemplate.objects.all(), widget=forms.MultipleHiddenInput)
class PowerPortTemplateForm(forms.ModelForm, BootstrapMixin): class PowerPortTemplateForm(forms.ModelForm, BootstrapMixin):
name_pattern = ExpandableNameField(label='Name') name_pattern = ExpandableNameField(label='Name')
@ -311,10 +287,6 @@ class DeviceRoleForm(forms.ModelForm, BootstrapMixin):
fields = ['name', 'slug', 'color'] fields = ['name', 'slug', 'color']
class DeviceRoleBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=DeviceRole.objects.all(), widget=forms.MultipleHiddenInput)
# #
# Platforms # Platforms
# #
@ -327,10 +299,6 @@ class PlatformForm(forms.ModelForm, BootstrapMixin):
fields = ['name', 'slug'] fields = ['name', 'slug']
class PlatformBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=Platform.objects.all(), widget=forms.MultipleHiddenInput)
# #
# Devices # Devices
# #
@ -550,10 +518,6 @@ class DeviceBulkEditForm(forms.Form, BootstrapMixin):
serial = forms.CharField(max_length=50, required=False, label='Serial Number') serial = forms.CharField(max_length=50, required=False, label='Serial Number')
class DeviceBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=Device.objects.all(), widget=forms.MultipleHiddenInput)
def device_site_choices(): def device_site_choices():
site_choices = Site.objects.annotate(device_count=Count('racks__devices')) site_choices = Site.objects.annotate(device_count=Count('racks__devices'))
return [(s.slug, u'{} ({})'.format(s.name, s.device_count)) for s in site_choices] return [(s.slug, u'{} ({})'.format(s.name, s.device_count)) for s in site_choices]

View File

@ -133,7 +133,6 @@ class RackGroupEditView(PermissionRequiredMixin, ObjectEditView):
class RackGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RackGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'dcim.delete_rackgroup' permission_required = 'dcim.delete_rackgroup'
cls = RackGroup cls = RackGroup
form = forms.RackGroupBulkDeleteForm
default_redirect_url = 'dcim:rackgroup_list' default_redirect_url = 'dcim:rackgroup_list'
@ -211,7 +210,6 @@ class RackBulkEditView(PermissionRequiredMixin, BulkEditView):
class RackBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RackBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'dcim.delete_rack' permission_required = 'dcim.delete_rack'
cls = Rack cls = Rack
form = forms.RackBulkDeleteForm
default_redirect_url = 'dcim:rack_list' default_redirect_url = 'dcim:rack_list'
@ -237,7 +235,6 @@ class ManufacturerEditView(PermissionRequiredMixin, ObjectEditView):
class ManufacturerBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class ManufacturerBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'dcim.delete_manufacturer' permission_required = 'dcim.delete_manufacturer'
cls = Manufacturer cls = Manufacturer
form = forms.ManufacturerBulkDeleteForm
default_redirect_url = 'dcim:manufacturer_list' default_redirect_url = 'dcim:manufacturer_list'
@ -332,7 +329,6 @@ class DeviceTypeBulkEditView(PermissionRequiredMixin, BulkEditView):
class DeviceTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class DeviceTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'dcim.delete_devicetype' permission_required = 'dcim.delete_devicetype'
cls = DeviceType cls = DeviceType
form = forms.DeviceTypeBulkDeleteForm
default_redirect_url = 'dcim:devicetype_list' default_redirect_url = 'dcim:devicetype_list'
@ -477,7 +473,6 @@ class DeviceRoleEditView(PermissionRequiredMixin, ObjectEditView):
class DeviceRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class DeviceRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'dcim.delete_devicerole' permission_required = 'dcim.delete_devicerole'
cls = DeviceRole cls = DeviceRole
form = forms.DeviceRoleBulkDeleteForm
default_redirect_url = 'dcim:devicerole_list' default_redirect_url = 'dcim:devicerole_list'
@ -503,7 +498,6 @@ class PlatformEditView(PermissionRequiredMixin, ObjectEditView):
class PlatformBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class PlatformBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'dcim.delete_platform' permission_required = 'dcim.delete_platform'
cls = Platform cls = Platform
form = forms.PlatformBulkDeleteForm
default_redirect_url = 'dcim:platform_list' default_redirect_url = 'dcim:platform_list'
@ -648,7 +642,6 @@ class DeviceBulkEditView(PermissionRequiredMixin, BulkEditView):
class DeviceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class DeviceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'dcim.delete_device' permission_required = 'dcim.delete_device'
cls = Device cls = Device
form = forms.DeviceBulkDeleteForm
default_redirect_url = 'dcim:device_list' default_redirect_url = 'dcim:device_list'

View File

@ -4,9 +4,7 @@ from django import forms
from django.db.models import Count from django.db.models import Count
from dcim.models import Site, Device, Interface from dcim.models import Site, Device, Interface
from utilities.forms import ( from utilities.forms import BootstrapMixin, APISelect, Livesearch, CSVDataField, BulkImportForm, SlugField
BootstrapMixin, ConfirmationForm, APISelect, Livesearch, CSVDataField, BulkImportForm, SlugField,
)
from .models import ( from .models import (
Aggregate, IPAddress, Prefix, PREFIX_STATUS_CHOICES, RIR, Role, VLAN, VLANGroup, VLAN_STATUS_CHOICES, VRF, Aggregate, IPAddress, Prefix, PREFIX_STATUS_CHOICES, RIR, Role, VLAN, VLANGroup, VLAN_STATUS_CHOICES, VRF,
@ -50,10 +48,6 @@ class VRFBulkEditForm(forms.Form, BootstrapMixin):
description = forms.CharField(max_length=100, required=False) description = forms.CharField(max_length=100, required=False)
class VRFBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=VRF.objects.all(), widget=forms.MultipleHiddenInput)
# #
# RIRs # RIRs
# #
@ -66,10 +60,6 @@ class RIRForm(forms.ModelForm, BootstrapMixin):
fields = ['name', 'slug'] fields = ['name', 'slug']
class RIRBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=RIR.objects.all(), widget=forms.MultipleHiddenInput)
# #
# Aggregates # Aggregates
# #
@ -106,10 +96,6 @@ class AggregateBulkEditForm(forms.Form, BootstrapMixin):
description = forms.CharField(max_length=50, required=False) description = forms.CharField(max_length=50, required=False)
class AggregateBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=Aggregate.objects.all(), widget=forms.MultipleHiddenInput)
def aggregate_rir_choices(): def aggregate_rir_choices():
rir_choices = RIR.objects.annotate(aggregate_count=Count('aggregates')) rir_choices = RIR.objects.annotate(aggregate_count=Count('aggregates'))
return [(r.slug, u'{} ({})'.format(r.name, r.aggregate_count)) for r in rir_choices] return [(r.slug, u'{} ({})'.format(r.name, r.aggregate_count)) for r in rir_choices]
@ -132,10 +118,6 @@ class RoleForm(forms.ModelForm, BootstrapMixin):
fields = ['name', 'slug'] fields = ['name', 'slug']
class RoleBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=Role.objects.all(), widget=forms.MultipleHiddenInput)
# #
# Prefixes # Prefixes
# #
@ -254,10 +236,6 @@ class PrefixBulkEditForm(forms.Form, BootstrapMixin):
description = forms.CharField(max_length=50, required=False) description = forms.CharField(max_length=50, required=False)
class PrefixBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=Prefix.objects.all(), widget=forms.MultipleHiddenInput)
def prefix_vrf_choices(): def prefix_vrf_choices():
vrf_choices = [('', 'All'), (0, 'Global')] vrf_choices = [('', 'All'), (0, 'Global')]
vrf_choices += [(v.pk, v.name) for v in VRF.objects.all()] vrf_choices += [(v.pk, v.name) for v in VRF.objects.all()]
@ -418,10 +396,6 @@ class IPAddressBulkEditForm(forms.Form, BootstrapMixin):
description = forms.CharField(max_length=50, required=False) description = forms.CharField(max_length=50, required=False)
class IPAddressBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=IPAddress.objects.all(), widget=forms.MultipleHiddenInput)
def ipaddress_family_choices(): def ipaddress_family_choices():
return [('', 'All'), (4, 'IPv4'), (6, 'IPv6')] return [('', 'All'), (4, 'IPv4'), (6, 'IPv6')]
@ -449,10 +423,6 @@ class VLANGroupForm(forms.ModelForm, BootstrapMixin):
fields = ['site', 'name', 'slug'] fields = ['site', 'name', 'slug']
class VLANGroupBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=VLANGroup.objects.all(), widget=forms.MultipleHiddenInput)
def vlangroup_site_choices(): def vlangroup_site_choices():
site_choices = Site.objects.annotate(vlangroup_count=Count('vlan_groups')) site_choices = Site.objects.annotate(vlangroup_count=Count('vlan_groups'))
return [(s.slug, u'{} ({})'.format(s.name, s.vlangroup_count)) for s in site_choices] return [(s.slug, u'{} ({})'.format(s.name, s.vlangroup_count)) for s in site_choices]
@ -535,10 +505,6 @@ class VLANBulkEditForm(forms.Form, BootstrapMixin):
description = forms.CharField(max_length=100, required=False) description = forms.CharField(max_length=100, required=False)
class VLANBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=VLAN.objects.all(), widget=forms.MultipleHiddenInput)
def vlan_site_choices(): def vlan_site_choices():
site_choices = Site.objects.annotate(vlan_count=Count('vlans')) site_choices = Site.objects.annotate(vlan_count=Count('vlans'))
return [(s.slug, u'{} ({})'.format(s.name, s.vlan_count)) for s in site_choices] return [(s.slug, u'{} ({})'.format(s.name, s.vlan_count)) for s in site_choices]

View File

@ -95,7 +95,6 @@ class VRFBulkEditView(PermissionRequiredMixin, BulkEditView):
class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_vrf' permission_required = 'ipam.delete_vrf'
cls = VRF cls = VRF
form = forms.VRFBulkDeleteForm
default_redirect_url = 'ipam:vrf_list' default_redirect_url = 'ipam:vrf_list'
@ -121,7 +120,6 @@ class RIREditView(PermissionRequiredMixin, ObjectEditView):
class RIRBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RIRBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_rir' permission_required = 'ipam.delete_rir'
cls = RIR cls = RIR
form = forms.RIRBulkDeleteForm
default_redirect_url = 'ipam:rir_list' default_redirect_url = 'ipam:rir_list'
@ -217,7 +215,6 @@ class AggregateBulkEditView(PermissionRequiredMixin, BulkEditView):
class AggregateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class AggregateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_aggregate' permission_required = 'ipam.delete_aggregate'
cls = Aggregate cls = Aggregate
form = forms.AggregateBulkDeleteForm
default_redirect_url = 'ipam:aggregate_list' default_redirect_url = 'ipam:aggregate_list'
@ -243,7 +240,6 @@ class RoleEditView(PermissionRequiredMixin, ObjectEditView):
class RoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class RoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_role' permission_required = 'ipam.delete_role'
cls = Role cls = Role
form = forms.RoleBulkDeleteForm
default_redirect_url = 'ipam:role_list' default_redirect_url = 'ipam:role_list'
@ -354,7 +350,6 @@ class PrefixBulkEditView(PermissionRequiredMixin, BulkEditView):
class PrefixBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class PrefixBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_prefix' permission_required = 'ipam.delete_prefix'
cls = Prefix cls = Prefix
form = forms.PrefixBulkDeleteForm
default_redirect_url = 'ipam:prefix_list' default_redirect_url = 'ipam:prefix_list'
@ -479,7 +474,6 @@ class IPAddressBulkEditView(PermissionRequiredMixin, BulkEditView):
class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_ipaddress' permission_required = 'ipam.delete_ipaddress'
cls = IPAddress cls = IPAddress
form = forms.IPAddressBulkDeleteForm
default_redirect_url = 'ipam:ipaddress_list' default_redirect_url = 'ipam:ipaddress_list'
@ -506,7 +500,6 @@ class VLANGroupEditView(PermissionRequiredMixin, ObjectEditView):
class VLANGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class VLANGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_vlangroup' permission_required = 'ipam.delete_vlangroup'
cls = VLANGroup cls = VLANGroup
form = forms.VLANGroupBulkDeleteForm
default_redirect_url = 'ipam:vlangroup_list' default_redirect_url = 'ipam:vlangroup_list'
@ -575,5 +568,4 @@ class VLANBulkEditView(PermissionRequiredMixin, BulkEditView):
class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'ipam.delete_vlan' permission_required = 'ipam.delete_vlan'
cls = VLAN cls = VLAN
form = forms.VLANBulkDeleteForm
default_redirect_url = 'ipam:vlan_list' default_redirect_url = 'ipam:vlan_list'

View File

@ -5,7 +5,7 @@ from django import forms
from django.db.models import Count from django.db.models import Count
from dcim.models import Device from dcim.models import Device
from utilities.forms import BootstrapMixin, BulkImportForm, ConfirmationForm, CSVDataField, SlugField from utilities.forms import BootstrapMixin, BulkImportForm, CSVDataField, SlugField
from .models import Secret, SecretRole, UserKey from .models import Secret, SecretRole, UserKey
@ -42,10 +42,6 @@ class SecretRoleForm(forms.ModelForm, BootstrapMixin):
fields = ['name', 'slug'] fields = ['name', 'slug']
class SecretRoleBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=SecretRole.objects.all(), widget=forms.MultipleHiddenInput)
# #
# Secrets # Secrets
# #
@ -97,10 +93,6 @@ class SecretBulkEditForm(forms.Form, BootstrapMixin):
name = forms.CharField(max_length=100, required=False) name = forms.CharField(max_length=100, required=False)
class SecretBulkDeleteForm(ConfirmationForm):
pk = forms.ModelMultipleChoiceField(queryset=Secret.objects.all(), widget=forms.MultipleHiddenInput)
def secret_role_choices(): def secret_role_choices():
role_choices = SecretRole.objects.annotate(secret_count=Count('secrets')) role_choices = SecretRole.objects.annotate(secret_count=Count('secrets'))
return [(r.slug, u'{} ({})'.format(r.name, r.secret_count)) for r in role_choices] return [(r.slug, u'{} ({})'.format(r.name, r.secret_count)) for r in role_choices]

View File

@ -37,7 +37,6 @@ class SecretRoleEditView(PermissionRequiredMixin, ObjectEditView):
class SecretRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class SecretRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'secrets.delete_secretrole' permission_required = 'secrets.delete_secretrole'
cls = SecretRole cls = SecretRole
form = forms.SecretRoleBulkDeleteForm
default_redirect_url = 'secrets:secretrole_list' default_redirect_url = 'secrets:secretrole_list'
@ -219,5 +218,4 @@ class SecretBulkEditView(PermissionRequiredMixin, BulkEditView):
class SecretBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): class SecretBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
permission_required = 'secrets.delete_secret' permission_required = 'secrets.delete_secret'
cls = Secret cls = Secret
form = forms.SecretBulkDeleteForm
default_redirect_url = 'secrets:secret_list' default_redirect_url = 'secrets:secret_list'