Просмотр исходного кода

Closes #5048: Show the device/VM name when editing a component

Jeremy Stretch 5 лет назад
Родитель
Сommit
f1877fcea9

+ 1 - 0
docs/release-notes/version-2.9.md

@@ -5,6 +5,7 @@
 ### Enhancements
 
 * [#4977](https://github.com/netbox-community/netbox/issues/4977) - Redirect authenticated users from login view
+* [#5048](https://github.com/netbox-community/netbox/issues/5048) - Show the device/VM name when editing a component
 * [#5072](https://github.com/netbox-community/netbox/issues/5072) - Add REST API filters for image attachments
 * [#5080](https://github.com/netbox-community/netbox/issues/5080) - Add 8P6C, 8P4C, 8P2C port types
 

+ 7 - 0
netbox/dcim/views.py

@@ -1233,6 +1233,7 @@ class ConsolePortCreateView(ComponentCreateView):
 class ConsolePortEditView(ObjectEditView):
     queryset = ConsolePort.objects.all()
     model_form = forms.ConsolePortForm
+    template_name = 'dcim/device_component_edit.html'
 
 
 class ConsolePortDeleteView(ObjectDeleteView):
@@ -1292,6 +1293,7 @@ class ConsoleServerPortCreateView(ComponentCreateView):
 class ConsoleServerPortEditView(ObjectEditView):
     queryset = ConsoleServerPort.objects.all()
     model_form = forms.ConsoleServerPortForm
+    template_name = 'dcim/device_component_edit.html'
 
 
 class ConsoleServerPortDeleteView(ObjectDeleteView):
@@ -1351,6 +1353,7 @@ class PowerPortCreateView(ComponentCreateView):
 class PowerPortEditView(ObjectEditView):
     queryset = PowerPort.objects.all()
     model_form = forms.PowerPortForm
+    template_name = 'dcim/device_component_edit.html'
 
 
 class PowerPortDeleteView(ObjectDeleteView):
@@ -1410,6 +1413,7 @@ class PowerOutletCreateView(ComponentCreateView):
 class PowerOutletEditView(ObjectEditView):
     queryset = PowerOutlet.objects.all()
     model_form = forms.PowerOutletForm
+    template_name = 'dcim/device_component_edit.html'
 
 
 class PowerOutletDeleteView(ObjectDeleteView):
@@ -1561,6 +1565,7 @@ class FrontPortCreateView(ComponentCreateView):
 class FrontPortEditView(ObjectEditView):
     queryset = FrontPort.objects.all()
     model_form = forms.FrontPortForm
+    template_name = 'dcim/device_component_edit.html'
 
 
 class FrontPortDeleteView(ObjectDeleteView):
@@ -1620,6 +1625,7 @@ class RearPortCreateView(ComponentCreateView):
 class RearPortEditView(ObjectEditView):
     queryset = RearPort.objects.all()
     model_form = forms.RearPortForm
+    template_name = 'dcim/device_component_edit.html'
 
 
 class RearPortDeleteView(ObjectDeleteView):
@@ -1679,6 +1685,7 @@ class DeviceBayCreateView(ComponentCreateView):
 class DeviceBayEditView(ObjectEditView):
     queryset = DeviceBay.objects.all()
     model_form = forms.DeviceBayForm
+    template_name = 'dcim/device_component_edit.html'
 
 
 class DeviceBayDeleteView(ObjectDeleteView):

+ 16 - 0
netbox/templates/dcim/device_component_edit.html

@@ -0,0 +1,16 @@
+{% extends 'utilities/obj_edit.html' %}
+{% load form_helpers %}
+
+{% block form_fields %}
+    {% if form.instance.device %}
+        <div class="form-group">
+            <label class="col-md-3 control-label required" for="id_device">Device</label>
+            <div class="col-md-9">
+                <p class="form-control-static">
+                    <a href="{{ form.instance.device.get_absolute_url }}">{{ form.instance.device }}</a>
+                </p>
+            </div>
+        </div>
+    {% endif %}
+    {% render_form form %}
+{% endblock %}

+ 15 - 0
netbox/templates/dcim/interface_edit.html

@@ -5,6 +5,16 @@
     <div class="panel panel-default">
         <div class="panel-heading"><strong>Interface</strong></div>
         <div class="panel-body">
+            {% if form.instance.device %}
+                <div class="form-group">
+                    <label class="col-md-3 control-label required" for="id_device">Device</label>
+                    <div class="col-md-9">
+                        <p class="form-control-static">
+                            <a href="{{ form.instance.device.get_absolute_url }}">{{ form.instance.device }}</a>
+                        </p>
+                    </div>
+                </div>
+            {% endif %}
             {% render_field form.name %}
             {% render_field form.label %}
             {% render_field form.type %}
@@ -14,6 +24,11 @@
             {% render_field form.mtu %}
             {% render_field form.mgmt_only %}
             {% render_field form.description %}
+        </div>
+    </div>
+    <div class="panel panel-default">
+        <div class="panel-heading"><strong>802.1Q Switching</strong></div>
+        <div class="panel-body">
             {% render_field form.mode %}
             {% render_field form.untagged_vlan %}
             {% render_field form.tagged_vlans %}

+ 3 - 1
netbox/templates/utilities/obj_edit.html

@@ -31,7 +31,9 @@
                     <div class="panel panel-default">
                         <div class="panel-heading"><strong>{{ obj_type|capfirst }}</strong></div>
                         <div class="panel-body">
-                            {% render_form form %}
+                            {% block form_fields %}
+                                {% render_form form %}
+                            {% endblock %}
                         </div>
                     </div>
                 {% endblock %}

+ 1 - 1
netbox/templates/virtualization/virtualmachine_component_add.html

@@ -2,7 +2,7 @@
 {% load helpers %}
 {% load form_helpers %}
 
-{% block title %}Create {{ component_type }} ({{ parent }}){% endblock %}
+{% block title %}Create {{ component_type }}{% endblock %}
 
 {% block content %}
 <form action="" method="post" class="form form-horizontal">

+ 20 - 0
netbox/templates/virtualization/vminterface_edit.html

@@ -5,14 +5,34 @@
     <div class="panel panel-default">
         <div class="panel-heading"><strong>Interface</strong></div>
         <div class="panel-body">
+            {% if form.instance.virtual_machine %}
+                <div class="form-group">
+                    <label class="col-md-3 control-label required" for="id_device">Virtual Machine</label>
+                    <div class="col-md-9">
+                        <p class="form-control-static">
+                            <a href="{{ form.instance.virtual_machine.get_absolute_url }}">{{ form.instance.virtual_machine }}</a>
+                        </p>
+                    </div>
+                </div>
+            {% endif %}
             {% render_field form.name %}
             {% render_field form.enabled %}
             {% render_field form.mac_address %}
             {% render_field form.mtu %}
             {% render_field form.description %}
+        </div>
+    </div>
+    <div class="panel panel-default">
+        <div class="panel-heading"><strong>802.1Q Switching</strong></div>
+        <div class="panel-body">
             {% render_field form.mode %}
             {% render_field form.untagged_vlan %}
             {% render_field form.tagged_vlans %}
+        </div>
+    </div>
+    <div class="panel panel-default">
+        <div class="panel-heading"><strong>Tags</strong></div>
+        <div class="panel-body">
             {% render_field form.tags %}
         </div>
     </div>