mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Consolidated bulk delete views to use a single template
This commit is contained in:
@ -88,7 +88,6 @@ class ProviderBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'circuits.delete_provider'
|
||||
cls = Provider
|
||||
form = ProviderBulkDeleteForm
|
||||
template_name = 'circuits/provider_bulk_delete.html'
|
||||
default_redirect_url = 'circuits:provider_list'
|
||||
|
||||
|
||||
@ -168,5 +167,4 @@ class CircuitBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'circuits.delete_circuit'
|
||||
cls = Circuit
|
||||
form = CircuitBulkDeleteForm
|
||||
template_name = 'circuits/circuit_bulk_delete.html'
|
||||
default_redirect_url = 'circuits:circuit_list'
|
||||
|
@ -11,7 +11,6 @@ from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.utils.http import urlencode
|
||||
from django.views.generic import View
|
||||
from django.views.generic.edit import CreateView, UpdateView
|
||||
|
||||
from ipam.models import Prefix, IPAddress, VLAN
|
||||
from circuits.models import Circuit
|
||||
@ -163,7 +162,6 @@ class RackGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_rackgroup'
|
||||
cls = RackGroup
|
||||
form = RackGroupBulkDeleteForm
|
||||
template_name = 'dcim/rackgroup_bulk_delete.html'
|
||||
default_redirect_url = 'dcim:rackgroup_list'
|
||||
|
||||
|
||||
@ -251,7 +249,6 @@ class RackBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_rack'
|
||||
cls = Rack
|
||||
form = RackBulkDeleteForm
|
||||
template_name = 'dcim/rack_bulk_delete.html'
|
||||
default_redirect_url = 'dcim:rack_list'
|
||||
|
||||
|
||||
@ -341,7 +338,6 @@ class DeviceTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_devicetype'
|
||||
cls = DeviceType
|
||||
form = DeviceTypeBulkDeleteForm
|
||||
template_name = 'dcim/devicetype_bulk_delete.html'
|
||||
default_redirect_url = 'dcim:devicetype_list'
|
||||
|
||||
|
||||
@ -581,7 +577,6 @@ class DeviceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_device'
|
||||
cls = Device
|
||||
form = DeviceBulkDeleteForm
|
||||
template_name = 'dcim/device_bulk_delete.html'
|
||||
default_redirect_url = 'dcim:device_list'
|
||||
|
||||
|
||||
|
@ -3,17 +3,10 @@ from netaddr import IPSet
|
||||
from django_tables2 import RequestConfig
|
||||
from django.conf import settings
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import permission_required
|
||||
from django.contrib.auth.mixins import PermissionRequiredMixin
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db.models import ProtectedError
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.utils.http import urlencode
|
||||
from django.shortcuts import get_object_or_404, render
|
||||
|
||||
from dcim.models import Device
|
||||
from utilities.error_handlers import handle_protectederror
|
||||
from utilities.forms import ConfirmationForm
|
||||
from utilities.paginator import EnhancedPaginator
|
||||
from utilities.views import BulkImportView, BulkEditView, BulkDeleteView, ObjectListView, ObjectAddView,\
|
||||
ObjectEditView, ObjectDeleteView
|
||||
@ -122,7 +115,6 @@ class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_vrf'
|
||||
cls = VRF
|
||||
form = VRFBulkDeleteForm
|
||||
template_name = 'ipam/vrf_bulk_delete.html'
|
||||
default_redirect_url = 'ipam:vrf_list'
|
||||
|
||||
|
||||
@ -216,7 +208,6 @@ class AggregateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_aggregate'
|
||||
cls = Aggregate
|
||||
form = AggregateBulkDeleteForm
|
||||
template_name = 'ipam/aggregate_bulk_delete.html'
|
||||
default_redirect_url = 'ipam:aggregate_list'
|
||||
|
||||
|
||||
@ -340,7 +331,6 @@ class PrefixBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_prefix'
|
||||
cls = Prefix
|
||||
form = PrefixBulkDeleteForm
|
||||
template_name = 'ipam/prefix_bulk_delete.html'
|
||||
default_redirect_url = 'ipam:prefix_list'
|
||||
|
||||
|
||||
@ -463,7 +453,6 @@ class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_ipaddress'
|
||||
cls = IPAddress
|
||||
form = IPAddressBulkDeleteForm
|
||||
template_name = 'ipam/ipaddress_bulk_delete.html'
|
||||
default_redirect_url = 'ipam:ipaddress_list'
|
||||
|
||||
|
||||
@ -544,5 +533,4 @@ class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_vlan'
|
||||
cls = VLAN
|
||||
form = VLANBulkDeleteForm
|
||||
template_name = 'ipam/vlan_bulk_delete.html'
|
||||
default_redirect_url = 'ipam:vlan_list'
|
||||
|
@ -220,5 +220,4 @@ class SecretBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'secrets.delete_secret'
|
||||
cls = Secret
|
||||
form = SecretBulkDeleteForm
|
||||
template_name = 'secrets/secret_bulk_delete.html'
|
||||
default_redirect_url = 'secrets:secret_list'
|
||||
|
@ -1,15 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete Circuits?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these circuits?
|
||||
</p>
|
||||
<ul>
|
||||
{% for circuit in selected_objects %}
|
||||
<li><a href="{% url 'circuits:circuit' pk=circuit.pk %}">{{ circuit }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -1,15 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete Providers?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these providers?
|
||||
</p>
|
||||
<ul>
|
||||
{% for provider in selected_objects %}
|
||||
<li><a href="{% url 'circuits:provider' slug=provider.slug %}">{{ provider }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -1,15 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete Devices?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these devices?
|
||||
</p>
|
||||
<ul>
|
||||
{% for device in selected_objects %}
|
||||
<li><a href="{% url 'dcim:device' pk=device.pk %}">{{ device }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -1,15 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete Device Types?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these device types?
|
||||
</p>
|
||||
<ul>
|
||||
{% for devicetype in selected_objects %}
|
||||
<li><a href="{% url 'dcim:devicetype' pk=devicetype.pk %}">{{ devicetype }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -1,15 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete Racks?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these racks?
|
||||
</p>
|
||||
<ul>
|
||||
{% for rack in selected_objects %}
|
||||
<li><a href="{% url 'dcim:rack' pk=rack.pk %}">{{ rack }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -1,15 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete Rack Groups?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these rack groups?
|
||||
</p>
|
||||
<ul>
|
||||
{% for rg in selected_objects %}
|
||||
<li>{{ rg }} ({{ rg.site }})</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -1,15 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete Aggregates?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these aggregates?
|
||||
</p>
|
||||
<ul>
|
||||
{% for aggregate in selected_objects %}
|
||||
<li><a href="{% url 'ipam:aggregate' pk=aggregate.pk %}">{{ aggregate }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -1,15 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete IP Addresses?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these IP addresses?
|
||||
</p>
|
||||
<ul>
|
||||
{% for ipaddress in selected_objects %}
|
||||
<li><a href="{% url 'ipam:ipaddress' pk=ipaddress.pk %}">{{ ipaddress }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -1,15 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete Prefixes?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these prefixes?
|
||||
</p>
|
||||
<ul>
|
||||
{% for prefix in selected_objects %}
|
||||
<li><a href="{% url 'ipam:prefix' pk=prefix.pk %}">{{ prefix }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -1,15 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete VLANs?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these VLANs?
|
||||
</p>
|
||||
<ul>
|
||||
{% for vlan in selected_objects %}
|
||||
<li><a href="{% url 'ipam:vlan' pk=vlan.pk %}">{{ vlan }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -1,15 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete VRFs?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these VRFs?
|
||||
</p>
|
||||
<ul>
|
||||
{% for vrf in selected_objects %}
|
||||
<li><a href="{% url 'ipam:vrf' pk=vrf.pk %}">{{ vrf }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -1,13 +0,0 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete Secrets?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>Are you sure you want to delete these secrets?</p>
|
||||
<ul>
|
||||
{% for secret in selected_objects %}
|
||||
<li><a href="{% url 'secrets:secret' pk=secret.pk %}">{{ secret }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
15
netbox/templates/utilities/confirm_bulk_delete.html
Normal file
15
netbox/templates/utilities/confirm_bulk_delete.html
Normal file
@ -0,0 +1,15 @@
|
||||
{% extends 'utilities/confirmation_form.html' %}
|
||||
{% load form_helpers %}
|
||||
|
||||
{% block title %}Delete {{ obj_type_plural|default:"objects" }}?{% endblock %}
|
||||
|
||||
{% block message %}
|
||||
<p>
|
||||
Are you sure you want to delete these {{ obj_type_plural|default:"objects" }}?
|
||||
</p>
|
||||
<ul>
|
||||
{% for obj in selected_objects %}
|
||||
<li><a href="{{ obj.get_absolute_url }}">{{ obj }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
@ -294,7 +294,7 @@ class BulkEditView(View):
|
||||
class BulkDeleteView(View):
|
||||
cls = None
|
||||
form = None
|
||||
template_name = None
|
||||
template_name = 'utilities/confirm_bulk_delete.html'
|
||||
default_redirect_url = None
|
||||
|
||||
@method_decorator(staff_member_required)
|
||||
@ -338,6 +338,7 @@ class BulkDeleteView(View):
|
||||
|
||||
return render(request, self.template_name, {
|
||||
'form': form,
|
||||
'obj_type_plural': self.cls._meta.verbose_name_plural,
|
||||
'selected_objects': selected_objects,
|
||||
'cancel_url': redirect_url,
|
||||
})
|
||||
|
Reference in New Issue
Block a user