Skip to content

Commit 004daca

Browse files
Adds rename button on the list page for device components (#13564)
* adds interface rename button on the list page #13444 * adds rename view on all device components #13564 * Condense component views to a single template --------- Co-authored-by: Jeremy Stretch <[email protected]>
1 parent 559f65f commit 004daca

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

netbox/dcim/views.py

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2184,6 +2184,15 @@ class ConsolePortListView(generic.ObjectListView):
21842184
filterset = filtersets.ConsolePortFilterSet
21852185
filterset_form = forms.ConsolePortFilterForm
21862186
table = tables.ConsolePortTable
2187+
template_name = 'dcim/component_list.html'
2188+
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
2189+
action_perms = defaultdict(set, **{
2190+
'add': {'add'},
2191+
'import': {'add'},
2192+
'bulk_edit': {'change'},
2193+
'bulk_delete': {'delete'},
2194+
'bulk_rename': {'change'},
2195+
})
21872196

21882197

21892198
@register_model_view(ConsolePort)
@@ -2247,6 +2256,15 @@ class ConsoleServerPortListView(generic.ObjectListView):
22472256
filterset = filtersets.ConsoleServerPortFilterSet
22482257
filterset_form = forms.ConsoleServerPortFilterForm
22492258
table = tables.ConsoleServerPortTable
2259+
template_name = 'dcim/component_list.html'
2260+
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
2261+
action_perms = defaultdict(set, **{
2262+
'add': {'add'},
2263+
'import': {'add'},
2264+
'bulk_edit': {'change'},
2265+
'bulk_delete': {'delete'},
2266+
'bulk_rename': {'change'},
2267+
})
22502268

22512269

22522270
@register_model_view(ConsoleServerPort)
@@ -2310,6 +2328,15 @@ class PowerPortListView(generic.ObjectListView):
23102328
filterset = filtersets.PowerPortFilterSet
23112329
filterset_form = forms.PowerPortFilterForm
23122330
table = tables.PowerPortTable
2331+
template_name = 'dcim/component_list.html'
2332+
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
2333+
action_perms = defaultdict(set, **{
2334+
'add': {'add'},
2335+
'import': {'add'},
2336+
'bulk_edit': {'change'},
2337+
'bulk_delete': {'delete'},
2338+
'bulk_rename': {'change'},
2339+
})
23132340

23142341

23152342
@register_model_view(PowerPort)
@@ -2373,6 +2400,15 @@ class PowerOutletListView(generic.ObjectListView):
23732400
filterset = filtersets.PowerOutletFilterSet
23742401
filterset_form = forms.PowerOutletFilterForm
23752402
table = tables.PowerOutletTable
2403+
template_name = 'dcim/component_list.html'
2404+
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
2405+
action_perms = defaultdict(set, **{
2406+
'add': {'add'},
2407+
'import': {'add'},
2408+
'bulk_edit': {'change'},
2409+
'bulk_delete': {'delete'},
2410+
'bulk_rename': {'change'},
2411+
})
23762412

23772413

23782414
@register_model_view(PowerOutlet)
@@ -2436,6 +2472,15 @@ class InterfaceListView(generic.ObjectListView):
24362472
filterset = filtersets.InterfaceFilterSet
24372473
filterset_form = forms.InterfaceFilterForm
24382474
table = tables.InterfaceTable
2475+
template_name = 'dcim/component_list.html'
2476+
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
2477+
action_perms = defaultdict(set, **{
2478+
'add': {'add'},
2479+
'import': {'add'},
2480+
'bulk_edit': {'change'},
2481+
'bulk_delete': {'delete'},
2482+
'bulk_rename': {'change'},
2483+
})
24392484

24402485

24412486
@register_model_view(Interface)
@@ -2547,6 +2592,15 @@ class FrontPortListView(generic.ObjectListView):
25472592
filterset = filtersets.FrontPortFilterSet
25482593
filterset_form = forms.FrontPortFilterForm
25492594
table = tables.FrontPortTable
2595+
template_name = 'dcim/component_list.html'
2596+
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
2597+
action_perms = defaultdict(set, **{
2598+
'add': {'add'},
2599+
'import': {'add'},
2600+
'bulk_edit': {'change'},
2601+
'bulk_delete': {'delete'},
2602+
'bulk_rename': {'change'},
2603+
})
25502604

25512605

25522606
@register_model_view(FrontPort)
@@ -2610,6 +2664,15 @@ class RearPortListView(generic.ObjectListView):
26102664
filterset = filtersets.RearPortFilterSet
26112665
filterset_form = forms.RearPortFilterForm
26122666
table = tables.RearPortTable
2667+
template_name = 'dcim/component_list.html'
2668+
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
2669+
action_perms = defaultdict(set, **{
2670+
'add': {'add'},
2671+
'import': {'add'},
2672+
'bulk_edit': {'change'},
2673+
'bulk_delete': {'delete'},
2674+
'bulk_rename': {'change'},
2675+
})
26132676

26142677

26152678
@register_model_view(RearPort)
@@ -2673,6 +2736,15 @@ class ModuleBayListView(generic.ObjectListView):
26732736
filterset = filtersets.ModuleBayFilterSet
26742737
filterset_form = forms.ModuleBayFilterForm
26752738
table = tables.ModuleBayTable
2739+
template_name = 'dcim/component_list.html'
2740+
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
2741+
action_perms = defaultdict(set, **{
2742+
'add': {'add'},
2743+
'import': {'add'},
2744+
'bulk_edit': {'change'},
2745+
'bulk_delete': {'delete'},
2746+
'bulk_rename': {'change'},
2747+
})
26762748

26772749

26782750
@register_model_view(ModuleBay)
@@ -2728,6 +2800,15 @@ class DeviceBayListView(generic.ObjectListView):
27282800
filterset = filtersets.DeviceBayFilterSet
27292801
filterset_form = forms.DeviceBayFilterForm
27302802
table = tables.DeviceBayTable
2803+
template_name = 'dcim/component_list.html'
2804+
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
2805+
action_perms = defaultdict(set, **{
2806+
'add': {'add'},
2807+
'import': {'add'},
2808+
'bulk_edit': {'change'},
2809+
'bulk_delete': {'delete'},
2810+
'bulk_rename': {'change'},
2811+
})
27312812

27322813

27332814
@register_model_view(DeviceBay)
@@ -2852,6 +2933,15 @@ class InventoryItemListView(generic.ObjectListView):
28522933
filterset = filtersets.InventoryItemFilterSet
28532934
filterset_form = forms.InventoryItemFilterForm
28542935
table = tables.InventoryItemTable
2936+
template_name = 'dcim/component_list.html'
2937+
actions = ('add', 'import', 'export', 'bulk_edit', 'bulk_delete', 'bulk_rename')
2938+
action_perms = defaultdict(set, **{
2939+
'add': {'add'},
2940+
'import': {'add'},
2941+
'bulk_edit': {'change'},
2942+
'bulk_delete': {'delete'},
2943+
'bulk_rename': {'change'},
2944+
})
28552945

28562946

28572947
@register_model_view(InventoryItem)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{% extends 'generic/object_list.html' %}
2+
{% load buttons %}
3+
{% load helpers %}
4+
{% load i18n %}
5+
6+
{% block bulk_buttons %}
7+
<div class="btn-group" role="group">
8+
{% if 'bulk_edit' in actions %}
9+
{% bulk_edit_button model query_params=request.GET %}
10+
{% endif %}
11+
{% if 'bulk_rename' in actions %}
12+
{% with bulk_rename_view=model|validated_viewname:"bulk_rename" %}
13+
<button type="submit" name="_rename" formaction="{% url bulk_rename_view %}" class="btn btn-outline-warning btn-sm">
14+
<i class="mdi mdi-pencil-outline" aria-hidden="true"></i> {% trans "Rename Selected" %}
15+
</button>
16+
{% endwith %}
17+
{% endif %}
18+
</div>
19+
{% if 'bulk_delete' in actions %}
20+
{% bulk_delete_button model query_params=request.GET %}
21+
{% endif %}
22+
{% endblock %}

0 commit comments

Comments
 (0)