diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py
index 8212ebbbf..2f661e613 100644
--- a/netbox/dcim/views.py
+++ b/netbox/dcim/views.py
@@ -2184,7 +2184,7 @@ class ConsolePortListView(generic.ObjectListView):
filterset = filtersets.ConsolePortFilterSet
filterset_form = forms.ConsolePortFilterForm
table = tables.ConsolePortTable
- template_name = 'dcim/consoleport_list.html'
+ template_name = 'dcim/component_list.html'
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
action_perms = defaultdict(set, **{
'add': {'add'},
@@ -2256,7 +2256,7 @@ class ConsoleServerPortListView(generic.ObjectListView):
filterset = filtersets.ConsoleServerPortFilterSet
filterset_form = forms.ConsoleServerPortFilterForm
table = tables.ConsoleServerPortTable
- template_name = 'dcim/consoleserverport_list.html'
+ template_name = 'dcim/component_list.html'
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
action_perms = defaultdict(set, **{
'add': {'add'},
@@ -2328,7 +2328,7 @@ class PowerPortListView(generic.ObjectListView):
filterset = filtersets.PowerPortFilterSet
filterset_form = forms.PowerPortFilterForm
table = tables.PowerPortTable
- template_name = 'dcim/powerport_list.html'
+ template_name = 'dcim/component_list.html'
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
action_perms = defaultdict(set, **{
'add': {'add'},
@@ -2400,7 +2400,7 @@ class PowerOutletListView(generic.ObjectListView):
filterset = filtersets.PowerOutletFilterSet
filterset_form = forms.PowerOutletFilterForm
table = tables.PowerOutletTable
- template_name = 'dcim/poweroutlet_list.html'
+ template_name = 'dcim/component_list.html'
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
action_perms = defaultdict(set, **{
'add': {'add'},
@@ -2472,7 +2472,7 @@ class InterfaceListView(generic.ObjectListView):
filterset = filtersets.InterfaceFilterSet
filterset_form = forms.InterfaceFilterForm
table = tables.InterfaceTable
- template_name = 'dcim/interface_list.html'
+ template_name = 'dcim/component_list.html'
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
action_perms = defaultdict(set, **{
'add': {'add'},
@@ -2592,7 +2592,7 @@ class FrontPortListView(generic.ObjectListView):
filterset = filtersets.FrontPortFilterSet
filterset_form = forms.FrontPortFilterForm
table = tables.FrontPortTable
- template_name = 'dcim/frontport_list.html'
+ template_name = 'dcim/component_list.html'
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
action_perms = defaultdict(set, **{
'add': {'add'},
@@ -2664,7 +2664,7 @@ class RearPortListView(generic.ObjectListView):
filterset = filtersets.RearPortFilterSet
filterset_form = forms.RearPortFilterForm
table = tables.RearPortTable
- template_name = 'dcim/rearport_list.html'
+ template_name = 'dcim/component_list.html'
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
action_perms = defaultdict(set, **{
'add': {'add'},
@@ -2736,7 +2736,7 @@ class ModuleBayListView(generic.ObjectListView):
filterset = filtersets.ModuleBayFilterSet
filterset_form = forms.ModuleBayFilterForm
table = tables.ModuleBayTable
- template_name = 'dcim/modulebay_list.html'
+ template_name = 'dcim/component_list.html'
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
action_perms = defaultdict(set, **{
'add': {'add'},
@@ -2800,7 +2800,7 @@ class DeviceBayListView(generic.ObjectListView):
filterset = filtersets.DeviceBayFilterSet
filterset_form = forms.DeviceBayFilterForm
table = tables.DeviceBayTable
- template_name = 'dcim/devicebay_list.html'
+ template_name = 'dcim/component_list.html'
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
action_perms = defaultdict(set, **{
'add': {'add'},
@@ -2933,7 +2933,7 @@ class InventoryItemListView(generic.ObjectListView):
filterset = filtersets.InventoryItemFilterSet
filterset_form = forms.InventoryItemFilterForm
table = tables.InventoryItemTable
- template_name = 'dcim/inventoryitem_list.html'
+ template_name = 'dcim/component_list.html'
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
action_perms = defaultdict(set, **{
'add': {'add'},
diff --git a/netbox/templates/dcim/component_list.html b/netbox/templates/dcim/component_list.html
new file mode 100644
index 000000000..a80dcfea8
--- /dev/null
+++ b/netbox/templates/dcim/component_list.html
@@ -0,0 +1,22 @@
+{% extends 'generic/object_list.html' %}
+{% load buttons %}
+{% load helpers %}
+{% load i18n %}
+
+{% block bulk_buttons %}
+
+ {% if 'bulk_edit' in actions %}
+ {% bulk_edit_button model query_params=request.GET %}
+ {% endif %}
+ {% if 'bulk_rename' in actions %}
+ {% with bulk_rename_view=model|validated_viewname:"bulk_rename" %}
+
+ {% endwith %}
+ {% endif %}
+
+ {% if 'bulk_delete' in actions %}
+ {% bulk_delete_button model query_params=request.GET %}
+ {% endif %}
+{% endblock %}
diff --git a/netbox/templates/dcim/consoleport_list.html b/netbox/templates/dcim/consoleport_list.html
deleted file mode 100644
index 722364190..000000000
--- a/netbox/templates/dcim/consoleport_list.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends 'generic/object_list.html' %}
-{% load helpers %}
-
-{% block bulk_buttons %}
- {% if 'bulk_rename' in actions %}
-
- {% endif %}
-
- {{ block.super }}
-{% endblock %}
diff --git a/netbox/templates/dcim/consoleserverport_list.html b/netbox/templates/dcim/consoleserverport_list.html
deleted file mode 100644
index 0f62a5399..000000000
--- a/netbox/templates/dcim/consoleserverport_list.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends 'generic/object_list.html' %}
-{% load helpers %}
-
-{% block bulk_buttons %}
- {% if 'bulk_rename' in actions %}
-
- {% endif %}
-
- {{ block.super }}
-{% endblock %}
diff --git a/netbox/templates/dcim/devicebay_list.html b/netbox/templates/dcim/devicebay_list.html
deleted file mode 100644
index 44b9748b7..000000000
--- a/netbox/templates/dcim/devicebay_list.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends 'generic/object_list.html' %}
-{% load helpers %}
-
-{% block bulk_buttons %}
- {% if 'bulk_rename' in actions %}
-
- {% endif %}
-
- {{ block.super }}
-{% endblock %}
diff --git a/netbox/templates/dcim/frontport_list.html b/netbox/templates/dcim/frontport_list.html
deleted file mode 100644
index 515c77dd2..000000000
--- a/netbox/templates/dcim/frontport_list.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends 'generic/object_list.html' %}
-{% load helpers %}
-
-{% block bulk_buttons %}
- {% if 'bulk_rename' in actions %}
-
- {% endif %}
-
- {{ block.super }}
-{% endblock %}
diff --git a/netbox/templates/dcim/interface_list.html b/netbox/templates/dcim/interface_list.html
deleted file mode 100644
index 95a002a0c..000000000
--- a/netbox/templates/dcim/interface_list.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends 'generic/object_list.html' %}
-{% load helpers %}
-
-{% block bulk_buttons %}
- {% if 'bulk_rename' in actions %}
-
- {% endif %}
-
- {{ block.super }}
-{% endblock %}
diff --git a/netbox/templates/dcim/inventoryitem_list.html b/netbox/templates/dcim/inventoryitem_list.html
deleted file mode 100644
index 563d7f259..000000000
--- a/netbox/templates/dcim/inventoryitem_list.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends 'generic/object_list.html' %}
-{% load helpers %}
-
-{% block bulk_buttons %}
- {% if 'bulk_rename' in actions %}
-
- {% endif %}
-
- {{ block.super }}
-{% endblock %}
diff --git a/netbox/templates/dcim/modulebay_list.html b/netbox/templates/dcim/modulebay_list.html
deleted file mode 100644
index cf52d5099..000000000
--- a/netbox/templates/dcim/modulebay_list.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends 'generic/object_list.html' %}
-{% load helpers %}
-
-{% block bulk_buttons %}
- {% if 'bulk_rename' in actions %}
-
- {% endif %}
-
- {{ block.super }}
-{% endblock %}
diff --git a/netbox/templates/dcim/poweroutlet_list.html b/netbox/templates/dcim/poweroutlet_list.html
deleted file mode 100644
index 12349799f..000000000
--- a/netbox/templates/dcim/poweroutlet_list.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends 'generic/object_list.html' %}
-{% load helpers %}
-
-{% block bulk_buttons %}
- {% if 'bulk_rename' in actions %}
-
- {% endif %}
-
- {{ block.super }}
-{% endblock %}
diff --git a/netbox/templates/dcim/powerport_list.html b/netbox/templates/dcim/powerport_list.html
deleted file mode 100644
index f21b4e729..000000000
--- a/netbox/templates/dcim/powerport_list.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends 'generic/object_list.html' %}
-{% load helpers %}
-
-{% block bulk_buttons %}
- {% if 'bulk_rename' in actions %}
-
- {% endif %}
-
- {{ block.super }}
-{% endblock %}
diff --git a/netbox/templates/dcim/rearport_list.html b/netbox/templates/dcim/rearport_list.html
deleted file mode 100644
index 57bcadf09..000000000
--- a/netbox/templates/dcim/rearport_list.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends 'generic/object_list.html' %}
-{% load helpers %}
-
-{% block bulk_buttons %}
- {% if 'bulk_rename' in actions %}
-
- {% endif %}
-
- {{ block.super }}
-{% endblock %}