From 0f608f3a15edf004e8e2785e1aff066e022d51a3 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 17 Jul 2017 13:19:25 -0400 Subject: [PATCH] Added device config view --- netbox/dcim/urls.py | 1 + netbox/dcim/views.py | 18 ++++++- netbox/templates/dcim/device_config.html | 53 ++++++++++++++++++++ netbox/templates/dcim/device_status.html | 2 +- netbox/templates/dcim/inc/device_header.html | 5 +- 5 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 netbox/templates/dcim/device_config.html diff --git a/netbox/dcim/urls.py b/netbox/dcim/urls.py index 6adbc4dae..172f634fb 100644 --- a/netbox/dcim/urls.py +++ b/netbox/dcim/urls.py @@ -124,6 +124,7 @@ urlpatterns = [ url(r'^devices/(?P\d+)/inventory/$', views.DeviceInventoryView.as_view(), name='device_inventory'), url(r'^devices/(?P\d+)/status/$', views.DeviceStatusView.as_view(), name='device_status'), url(r'^devices/(?P\d+)/lldp-neighbors/$', views.DeviceLLDPNeighborsView.as_view(), name='device_lldp_neighbors'), + url(r'^devices/(?P\d+)/config/$', views.DeviceConfigView.as_view(), name='device_config'), url(r'^devices/(?P\d+)/add-secret/$', secret_add, name='device_addsecret'), url(r'^devices/(?P\d+)/services/assign/$', ServiceCreateView.as_view(), name='service_assign'), url(r'^devices/(?P\d+)/images/add/$', ImageAttachmentEditView.as_view(), name='device_add_image', kwargs={'model': Device}), diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index fdadc679d..ea07138d5 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -921,7 +921,8 @@ class DeviceInventoryView(View): }) -class DeviceStatusView(View): +class DeviceStatusView(PermissionRequiredMixin, View): + permission_required = 'dcim.napalm_read' def get(self, request, pk): @@ -932,7 +933,8 @@ class DeviceStatusView(View): }) -class DeviceLLDPNeighborsView(View): +class DeviceLLDPNeighborsView(PermissionRequiredMixin, View): + permission_required = 'dcim.napalm_read' def get(self, request, pk): @@ -951,6 +953,18 @@ class DeviceLLDPNeighborsView(View): }) +class DeviceConfigView(PermissionRequiredMixin, View): + permission_required = 'dcim.napalm_read' + + def get(self, request, pk): + + device = get_object_or_404(Device, pk=pk) + + return render(request, 'dcim/device_config.html', { + 'device': device, + }) + + class DeviceCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'dcim.add_device' model = Device diff --git a/netbox/templates/dcim/device_config.html b/netbox/templates/dcim/device_config.html new file mode 100644 index 000000000..b62ff0211 --- /dev/null +++ b/netbox/templates/dcim/device_config.html @@ -0,0 +1,53 @@ +{% extends '_base.html' %} +{% load staticfiles %} + +{% block title %}{{ device }} - Config{% endblock %} + +{% block content %} + {% include 'inc/ajax_loader.html' %} + {% include 'dcim/inc/device_header.html' with active_tab='config' %} +
+
+
+
Device Configuration
+
+ +
+
+

+                        
+
+

+                        
+
+

+                        
+
+
+
+
+
+{% endblock %} + +{% block javascript %} + +{% endblock %} diff --git a/netbox/templates/dcim/device_status.html b/netbox/templates/dcim/device_status.html index 5e5dab168..4d3c9ba78 100644 --- a/netbox/templates/dcim/device_status.html +++ b/netbox/templates/dcim/device_status.html @@ -1,7 +1,7 @@ {% extends '_base.html' %} {% load staticfiles %} -{% block title %}{{ device }} - NAPALM{% endblock %} +{% block title %}{{ device }} - Status{% endblock %} {% block content %} {% include 'inc/ajax_loader.html' %} diff --git a/netbox/templates/dcim/inc/device_header.html b/netbox/templates/dcim/inc/device_header.html index 8a807873a..b9eb7fb19 100644 --- a/netbox/templates/dcim/inc/device_header.html +++ b/netbox/templates/dcim/inc/device_header.html @@ -45,8 +45,9 @@