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

Fixes #734: Corrected display of device type when editing a device

Jeremy Stretch 9 лет назад
Родитель
Сommit
d5095362d7

+ 5 - 1
netbox/dcim/admin.py

@@ -183,10 +183,14 @@ class DeviceAdmin(admin.ModelAdmin):
         DeviceBayAdmin,
         ModuleAdmin,
     ]
-    list_display = ['display_name', 'device_type', 'device_role', 'primary_ip', 'rack', 'position', 'asset_tag',
+    list_display = ['display_name', 'device_type_full_name', 'device_role', 'primary_ip', 'rack', 'position', 'asset_tag',
                     'serial']
     list_filter = ['device_role']
 
     def get_queryset(self, request):
         qs = super(DeviceAdmin, self).get_queryset(request)
         return qs.select_related('device_type__manufacturer', 'device_role', 'primary_ip4', 'primary_ip6', 'rack')
+
+    def device_type_full_name(self, obj):
+        return obj.device_type.full_name
+    device_type_full_name.short_description = 'Device type'

+ 5 - 1
netbox/dcim/models.py

@@ -561,7 +561,7 @@ class DeviceType(models.Model):
         ]
 
     def __unicode__(self):
-        return u'{} {}'.format(self.manufacturer, self.model)
+        return self.model
 
     def __init__(self, *args, **kwargs):
         super(DeviceType, self).__init__(*args, **kwargs)
@@ -617,6 +617,10 @@ class DeviceType(models.Model):
                 'u_height': "Child device types must be 0U."
             })
 
+    @property
+    def full_name(self):
+        return u'{} {}'.format(self.manufacturer.name, self.model)
+
     @property
     def is_parent_device(self):
         return bool(self.subdevice_role)

+ 4 - 2
netbox/dcim/tables.py

@@ -294,7 +294,8 @@ class PlatformTable(BaseTable):
     name = tables.LinkColumn(verbose_name='Name')
     device_count = tables.Column(verbose_name='Devices')
     slug = tables.Column(verbose_name='Slug')
-    actions = tables.TemplateColumn(template_code=PLATFORM_ACTIONS, attrs={'td': {'class': 'text-right'}}, verbose_name='')
+    actions = tables.TemplateColumn(template_code=PLATFORM_ACTIONS, attrs={'td': {'class': 'text-right'}},
+                                    verbose_name='')
 
     class Meta(BaseTable.Meta):
         model = Platform
@@ -313,7 +314,8 @@ class DeviceTable(BaseTable):
     site = tables.Column(accessor=Accessor('rack.site'), verbose_name='Site')
     rack = tables.LinkColumn('dcim:rack', args=[Accessor('rack.pk')], verbose_name='Rack')
     device_role = tables.TemplateColumn(DEVICE_ROLE, verbose_name='Role')
-    device_type = tables.Column(verbose_name='Type')
+    device_type = tables.LinkColumn('dcim:devicetype', args=[Accessor('device_type.pk')], verbose_name='Type',
+                                    text=lambda record: record.device_type.full_name)
     primary_ip = tables.TemplateColumn(orderable=False, verbose_name='IP Address',
                                        template_code="{{ record.primary_ip.address.ip }}")
 

+ 2 - 2
netbox/templates/dcim/device.html

@@ -56,7 +56,7 @@
                 <tr>
                     <td>Device Type</td>
                     <td>
-                        <span><a href="{% url 'dcim:devicetype' pk=device.device_type.pk %}">{{ device.device_type }}</a> ({{ device.device_type.u_height }}U)</span>
+                        <span><a href="{% url 'dcim:devicetype' pk=device.device_type.pk %}">{{ device.device_type.full_name }}</a> ({{ device.device_type.u_height }}U)</span>
                     </td>
                 </tr>
                 <tr>
@@ -293,7 +293,7 @@
                             <td>
                                 <a href="{% url 'dcim:rack' pk=rd.rack.pk %}">Rack {{ rd.rack }}</a>
                             </td>
-                            <td>{{ rd.device_type }}</td>
+                            <td>{{ rd.device_type.full_name }}</td>
                         </tr>
                     {% endfor %}
                 </table>

+ 1 - 1
netbox/templates/dcim/device_bulk_add_component.html

@@ -24,7 +24,7 @@
                     {% for device in selected_devices %}
                         <tr>
                             <td><a href="{% url 'dcim:device' pk=device.pk %}">{{ device }}</a></td>
-                            <td>{{ device.device_type }}</td>
+                            <td>{{ device.device_type.full_name }}</td>
                             <td>{{ device.device_role }}</td>
                         </tr>
                     {% endfor %}

+ 1 - 1
netbox/templates/dcim/device_bulk_edit.html

@@ -14,7 +14,7 @@
     {% for device in selected_objects %}
         <tr>
             <td><a href="{% url 'dcim:device' pk=device.pk %}">{{ device }}</a></td>
-            <td>{{ device.device_type }}</td>
+            <td>{{ device.device_type.full_name }}</td>
             <td>{{ device.device_role }}</td>
             <td>{{ device.tenant }}</td>
             <td>{{ device.serial }}</td>

+ 1 - 1
netbox/templates/dcim/device_inventory.html

@@ -13,7 +13,7 @@
             <table class="table table-hover panel-body">
                 <tr>
                     <td>Model</td>
-                    <td>{{ device.device_type }}</td>
+                    <td>{{ device.device_type.full_name }}</td>
                 </tr>
                 <tr>
                     <td>Serial Number</td>

+ 2 - 2
netbox/templates/dcim/devicetype.html

@@ -2,7 +2,7 @@
 {% load helpers %}
 {% load render_table from django_tables2 %}
 
-{% block title %}{{ devicetype }}{% endblock %}
+{% block title %}{{ devicetype.manufacturer }} {{ devicetype.model }}{% endblock %}
 
 {% block content %}
 <div class="row">
@@ -32,7 +32,7 @@
     </div>
 {% endif %}
 
-<h1>{{ devicetype }}</h1>
+<h1>{{ devicetype.manufacturer }} {{ devicetype.model }}</h1>
 <div class="row">
     <div class="col-md-6">
         <div class="panel panel-default">

+ 1 - 1
netbox/templates/dcim/inc/_devicebay.html

@@ -12,7 +12,7 @@
             <a href="{% url 'dcim:device' pk=devicebay.installed_device.pk %}">{{ devicebay.installed_device }}</a>
         </td>
         <td>
-            <span>{{ devicebay.installed_device.device_type }}</span>
+            <span>{{ devicebay.installed_device.device_type.full_name }}</span>
         </td>
     {% else %}
         <td colspan="2">

+ 1 - 1
netbox/templates/dcim/inc/_rack_elevation.html

@@ -24,7 +24,7 @@
                 <li class="occupied h{{ u.device.device_type.u_height }}u"{% ifequal u.device.face face_id %} style="background-color: #{{ u.device.device_role.color }}"{% endifequal %}>
                     {% ifequal u.device.face face_id %}
                         <a href="{% url 'dcim:device' pk=u.device.pk %}" data-toggle="popover" data-trigger="hover" data-container="body" data-html="true"
-                           data-content="{{ u.device.device_role }}<br />{{ u.device.device_type }} ({{ u.device.device_type.u_height }}U)">
+                           data-content="{{ u.device.device_role }}<br />{{ u.device.device_type.full_name }} ({{ u.device.device_type.u_height }}U)">
                             {{ u.device.name|default:u.device.device_role }}
                             {% if u.device.devicebay_count %}
                                 ({{ u.device.get_children.count }}/{{ u.device.devicebay_count }})

+ 8 - 2
netbox/templates/dcim/rack.html

@@ -153,8 +153,14 @@
                                 <a href="{% url 'dcim:device' pk=device.pk %}">{{ device.name }}</a>
                             </td>
                             <td>{{ device.device_role }}</td>
-                            <td>{{ device.device_type }}</td>
-                            <td>{% if device.parent_bay %}<a href="{{ device.parent_bay.device.get_absolute_url }}">{{ device.parent_bay }}</a>{% endif %}</td>
+                            <td>{{ device.device_type.full_name }}</td>
+                            <td>
+                                {% if device.parent_bay %}
+                                    <a href="{{ device.parent_bay.device.get_absolute_url }}">{{ device.parent_bay }}</a>
+                                {% else %}
+                                    <span class="text-muted">N/A</span>
+                                {% endif %}
+                            </td>
                         </tr>
                     {% endfor %}
                 </table>