diff --git a/CHANGELOG.md b/CHANGELOG.md index a63cd9f87..44c6bc45d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,14 +3,15 @@ ## Enhancements * [#2813](https://github.com/digitalocean/netbox/issues/2813) - Add tenant group filters -* [#3150](https://github.com/digitalocean/netbox/issues/3150) - Fix formatting of cable length during cable trace * [#3085](https://github.com/digitalocean/netbox/issues/3085) - Catch all exceptions during export template rendering +* [#3183](https://github.com/digitalocean/netbox/issues/3183) - Enable bulk deletion of sites * [#3186](https://github.com/digitalocean/netbox/issues/3186) - Add interface name filter for IP addresses -* [#3190](https://github.com/digitalocean/netbox/issues/3190) - Fix custom field rendering for Jinja2 export templates ## Bug Fixes * [#3132](https://github.com/digitalocean/netbox/issues/3132) - Circuit termination missing from available cable termination types +* [#3150](https://github.com/digitalocean/netbox/issues/3150) - Fix formatting of cable length during cable trace +* [#3190](https://github.com/digitalocean/netbox/issues/3190) - Fix custom field rendering for Jinja2 export templates --- diff --git a/netbox/dcim/urls.py b/netbox/dcim/urls.py index 21d620af1..07cf4b010 100644 --- a/netbox/dcim/urls.py +++ b/netbox/dcim/urls.py @@ -25,6 +25,7 @@ urlpatterns = [ url(r'^sites/add/$', views.SiteCreateView.as_view(), name='site_add'), url(r'^sites/import/$', views.SiteBulkImportView.as_view(), name='site_import'), url(r'^sites/edit/$', views.SiteBulkEditView.as_view(), name='site_bulk_edit'), + url(r'^sites/delete/$', views.SiteBulkDeleteView.as_view(), name='site_bulk_delete'), url(r'^sites/(?P[\w-]+)/$', views.SiteView.as_view(), name='site'), url(r'^sites/(?P[\w-]+)/edit/$', views.SiteEditView.as_view(), name='site_edit'), url(r'^sites/(?P[\w-]+)/delete/$', views.SiteDeleteView.as_view(), name='site_delete'), diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 27f90a3a2..85d37b29f 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -247,6 +247,14 @@ class SiteBulkEditView(PermissionRequiredMixin, BulkEditView): default_return_url = 'dcim:site_list' +class SiteBulkDeleteView(PermissionRequiredMixin, BulkDeleteView): + permission_required = 'dcim.delete_site' + queryset = Site.objects.select_related('region', 'tenant') + filter = filters.SiteFilter + table = tables.SiteTable + default_return_url = 'dcim:site_list' + + # # Rack groups # diff --git a/netbox/templates/dcim/site_list.html b/netbox/templates/dcim/site_list.html index 0dd52a96d..64948a6f9 100644 --- a/netbox/templates/dcim/site_list.html +++ b/netbox/templates/dcim/site_list.html @@ -12,7 +12,7 @@

{% block title %}Sites{% endblock %}

- {% include 'utilities/obj_table.html' with bulk_edit_url='dcim:site_bulk_edit' %} + {% include 'utilities/obj_table.html' with bulk_edit_url='dcim:site_bulk_edit' bulk_delete_url='dcim:site_bulk_delete' %}
{% include 'inc/search_panel.html' %}