mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-23 17:08:41 -06:00
Closes #292: Added part_number field to DeviceType
This commit is contained in:
parent
cc4470ade7
commit
8f4980044a
@ -78,8 +78,8 @@ class DeviceTypeAdmin(admin.ModelAdmin):
|
|||||||
InterfaceTemplateAdmin,
|
InterfaceTemplateAdmin,
|
||||||
DeviceBayTemplateAdmin,
|
DeviceBayTemplateAdmin,
|
||||||
]
|
]
|
||||||
list_display = ['model', 'manufacturer', 'slug', 'u_height', 'console_ports', 'console_server_ports', 'power_ports',
|
list_display = ['model', 'manufacturer', 'slug', 'part_number', 'u_height', 'console_ports', 'console_server_ports',
|
||||||
'power_outlets', 'interfaces', 'device_bays']
|
'power_ports', 'power_outlets', 'interfaces', 'device_bays']
|
||||||
list_filter = ['manufacturer']
|
list_filter = ['manufacturer']
|
||||||
|
|
||||||
def get_queryset(self, request):
|
def get_queryset(self, request):
|
||||||
|
@ -111,8 +111,8 @@ class DeviceTypeSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = DeviceType
|
model = DeviceType
|
||||||
fields = ['id', 'manufacturer', 'model', 'slug', 'u_height', 'is_full_depth', 'is_console_server', 'is_pdu',
|
fields = ['id', 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth',
|
||||||
'is_network_device']
|
'is_console_server', 'is_pdu', 'is_network_device']
|
||||||
|
|
||||||
|
|
||||||
class DeviceTypeNestedSerializer(DeviceTypeSerializer):
|
class DeviceTypeNestedSerializer(DeviceTypeSerializer):
|
||||||
@ -164,9 +164,9 @@ class DeviceTypeDetailSerializer(DeviceTypeSerializer):
|
|||||||
interface_templates = InterfaceTemplateNestedSerializer(many=True, read_only=True)
|
interface_templates = InterfaceTemplateNestedSerializer(many=True, read_only=True)
|
||||||
|
|
||||||
class Meta(DeviceTypeSerializer.Meta):
|
class Meta(DeviceTypeSerializer.Meta):
|
||||||
fields = ['id', 'manufacturer', 'model', 'slug', 'u_height', 'is_full_depth', 'is_console_server', 'is_pdu',
|
fields = ['id', 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth',
|
||||||
'is_network_device', 'console_port_templates', 'cs_port_templates', 'power_port_templates',
|
'is_console_server', 'is_pdu', 'is_network_device', 'console_port_templates', 'cs_port_templates',
|
||||||
'power_outlet_templates', 'interface_templates']
|
'power_port_templates', 'power_outlet_templates', 'interface_templates']
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -102,7 +102,7 @@ class DeviceTypeFilter(django_filters.FilterSet):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = DeviceType
|
model = DeviceType
|
||||||
fields = ['manufacturer_id', 'manufacturer', 'model', 'u_height', 'is_console_server', 'is_pdu',
|
fields = ['manufacturer_id', 'manufacturer', 'model', 'part_number', 'u_height', 'is_console_server', 'is_pdu',
|
||||||
'is_network_device']
|
'is_network_device']
|
||||||
|
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ class DeviceTypeForm(forms.ModelForm, BootstrapMixin):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = DeviceType
|
model = DeviceType
|
||||||
fields = ['manufacturer', 'model', 'slug', 'u_height', 'is_full_depth', 'is_console_server', 'is_pdu',
|
fields = ['manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'is_console_server', 'is_pdu',
|
||||||
'is_network_device', 'subdevice_role']
|
'is_network_device', 'subdevice_role']
|
||||||
|
|
||||||
|
|
||||||
|
20
netbox/dcim/migrations/0011_devicetype_part_number.py
Normal file
20
netbox/dcim/migrations/0011_devicetype_part_number.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.9.8 on 2016-07-26 15:05
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dcim', '0010_devicebay_installed_device_set_null'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='devicetype',
|
||||||
|
name='part_number',
|
||||||
|
field=models.CharField(blank=True, help_text=b'Discrete part number (optional)', max_length=50),
|
||||||
|
),
|
||||||
|
]
|
@ -409,6 +409,7 @@ class DeviceType(models.Model):
|
|||||||
manufacturer = models.ForeignKey('Manufacturer', related_name='device_types', on_delete=models.PROTECT)
|
manufacturer = models.ForeignKey('Manufacturer', related_name='device_types', on_delete=models.PROTECT)
|
||||||
model = models.CharField(max_length=50)
|
model = models.CharField(max_length=50)
|
||||||
slug = models.SlugField()
|
slug = models.SlugField()
|
||||||
|
part_number = models.CharField(max_length=50, blank=True, help_text="Discrete part number (optional)")
|
||||||
u_height = models.PositiveSmallIntegerField(verbose_name='Height (U)', default=1)
|
u_height = models.PositiveSmallIntegerField(verbose_name='Height (U)', default=1)
|
||||||
is_full_depth = models.BooleanField(default=True, verbose_name="Is full depth",
|
is_full_depth = models.BooleanField(default=True, verbose_name="Is full depth",
|
||||||
help_text="Device consumes both front and rear rack faces")
|
help_text="Device consumes both front and rear rack faces")
|
||||||
|
@ -147,10 +147,11 @@ class DeviceTypeTable(BaseTable):
|
|||||||
pk = ToggleColumn()
|
pk = ToggleColumn()
|
||||||
manufacturer = tables.Column(verbose_name='Manufacturer')
|
manufacturer = tables.Column(verbose_name='Manufacturer')
|
||||||
model = tables.LinkColumn('dcim:devicetype', args=[Accessor('pk')], verbose_name='Device Type')
|
model = tables.LinkColumn('dcim:devicetype', args=[Accessor('pk')], verbose_name='Device Type')
|
||||||
|
part_number = tables.Column(verbose_name='Part Number')
|
||||||
|
|
||||||
class Meta(BaseTable.Meta):
|
class Meta(BaseTable.Meta):
|
||||||
model = DeviceType
|
model = DeviceType
|
||||||
fields = ('pk', 'model', 'manufacturer', 'u_height')
|
fields = ('pk', 'model', 'manufacturer', 'part_number', 'u_height')
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -48,6 +48,16 @@
|
|||||||
<td>Model Name</td>
|
<td>Model Name</td>
|
||||||
<td>{{ devicetype.model }}</td>
|
<td>{{ devicetype.model }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Part Number</td>
|
||||||
|
<td>
|
||||||
|
{% if devicetype.part_number %}
|
||||||
|
{{ devicetype.part_number }}
|
||||||
|
{% else %}
|
||||||
|
<span class="text-muted">N/A</span>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Height (U)</td>
|
<td>Height (U)</td>
|
||||||
<td>{{ devicetype.u_height }}</td>
|
<td>{{ devicetype.u_height }}</td>
|
||||||
|
Loading…
Reference in New Issue
Block a user