From f503c727826230ed70920417886887103dcb94d9 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Mon, 12 Apr 2021 15:02:29 -0400 Subject: [PATCH] Closes #6146: Add bulk disconnect support for power feeds --- docs/release-notes/version-2.11.md | 1 + netbox/dcim/urls.py | 1 + netbox/dcim/views.py | 6 +++++ netbox/templates/dcim/powerpanel.html | 33 ++++++++++++++++++++++++++- 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/version-2.11.md b/docs/release-notes/version-2.11.md index 3bf3b2fbc..c548d5357 100644 --- a/docs/release-notes/version-2.11.md +++ b/docs/release-notes/version-2.11.md @@ -9,6 +9,7 @@ * [#6109](https://github.com/netbox-community/netbox/issues/6109) - Add device counts to locations table * [#6121](https://github.com/netbox-community/netbox/issues/6121) - Extend parent interface assignment to VM interfaces * [#6125](https://github.com/netbox-community/netbox/issues/6125) - Add locations count to home page +* [#6146](https://github.com/netbox-community/netbox/issues/6146) - Add bulk disconnect support for power feeds ### Bug Fixes (from Beta) diff --git a/netbox/dcim/urls.py b/netbox/dcim/urls.py index 3c84aae01..534a9eec6 100644 --- a/netbox/dcim/urls.py +++ b/netbox/dcim/urls.py @@ -417,6 +417,7 @@ urlpatterns = [ path('power-feeds/add/', views.PowerFeedEditView.as_view(), name='powerfeed_add'), path('power-feeds/import/', views.PowerFeedBulkImportView.as_view(), name='powerfeed_import'), path('power-feeds/edit/', views.PowerFeedBulkEditView.as_view(), name='powerfeed_bulk_edit'), + path('power-feeds/disconnect/', views.PowerFeedBulkDisconnectView.as_view(), name='powerfeed_bulk_disconnect'), path('power-feeds/delete/', views.PowerFeedBulkDeleteView.as_view(), name='powerfeed_bulk_delete'), path('power-feeds//', views.PowerFeedView.as_view(), name='powerfeed'), path('power-feeds//edit/', views.PowerFeedEditView.as_view(), name='powerfeed_edit'), diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 467382a7b..53e842ff9 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -2836,6 +2836,8 @@ class PowerPanelView(generic.ObjectView): data=power_feeds, orderable=False ) + if request.user.has_perm('dcim.delete_cable'): + powerfeed_table.columns.show('pk') powerfeed_table.exclude = ['power_panel'] return { @@ -2912,6 +2914,10 @@ class PowerFeedBulkEditView(generic.BulkEditView): form = forms.PowerFeedBulkEditForm +class PowerFeedBulkDisconnectView(BulkDisconnectView): + queryset = PowerFeed.objects.all() + + class PowerFeedBulkDeleteView(generic.BulkDeleteView): queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack') filterset = filters.PowerFeedFilterSet diff --git a/netbox/templates/dcim/powerpanel.html b/netbox/templates/dcim/powerpanel.html index e906aec90..0ddfa3885 100644 --- a/netbox/templates/dcim/powerpanel.html +++ b/netbox/templates/dcim/powerpanel.html @@ -1,6 +1,7 @@ {% extends 'generic/object.html' %} {% load helpers %} {% load plugins %} +{% load render_table from django_tables2 %} {% block breadcrumbs %}
  • Power Panels
  • @@ -47,7 +48,37 @@
    - {% include 'panel_table.html' with table=powerfeed_table heading='Connected Feeds' %} +
    + {% csrf_token %} +
    + {% render_table powerfeed_table 'inc/table.html' %} + +
    +
    {% plugin_full_width_page object %}