diff --git a/CHANGELOG.md b/CHANGELOG.md index 12a2fbaa6..b7d487c70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ v2.5.6 (FUTURE) ## Bug Fixes * [#2844](https://github.com/digitalocean/netbox/issues/2844) - Correct display of far cable end for pass-through ports +* [#2857](https://github.com/digitalocean/netbox/issues/2857) - Add `display_name` to DeviceType API serializer; fix DeviceType list for bulk device edit --- diff --git a/netbox/dcim/api/nested_serializers.py b/netbox/dcim/api/nested_serializers.py index 4d7478595..e53259e94 100644 --- a/netbox/dcim/api/nested_serializers.py +++ b/netbox/dcim/api/nested_serializers.py @@ -100,7 +100,7 @@ class NestedDeviceTypeSerializer(WritableNestedSerializer): class Meta: model = DeviceType - fields = ['id', 'url', 'manufacturer', 'model', 'slug'] + fields = ['id', 'url', 'manufacturer', 'model', 'slug', 'display_name'] class NestedRearPortTemplateSerializer(WritableNestedSerializer): diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index 765ed83dd..c17400a35 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -180,8 +180,8 @@ class DeviceTypeSerializer(TaggitSerializer, CustomFieldModelSerializer): class Meta: model = DeviceType fields = [ - 'id', 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role', - 'comments', 'tags', 'custom_fields', 'created', 'last_updated', 'instance_count', + 'id', 'manufacturer', 'model', 'slug', 'display_name', 'part_number', 'u_height', 'is_full_depth', + 'subdevice_role', 'comments', 'tags', 'custom_fields', 'created', 'last_updated', 'instance_count', ] diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 4d02506fe..d4217b75d 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -1599,7 +1599,8 @@ class DeviceBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldBulkEditF required=False, label='Type', widget=APISelect( - api_url="/api/dcim/device-types/" + api_url="/api/dcim/device-types/", + display_field='display_name' ) ) device_role = forms.ModelChoiceField( diff --git a/netbox/dcim/models.py b/netbox/dcim/models.py index 6a6e0067d..524689ecb 100644 --- a/netbox/dcim/models.py +++ b/netbox/dcim/models.py @@ -980,7 +980,7 @@ class DeviceType(ChangeLoggedModel, CustomFieldModel): }) @property - def full_name(self): + def display_name(self): return '{} {}'.format(self.manufacturer.name, self.model) @property diff --git a/netbox/dcim/tables.py b/netbox/dcim/tables.py index 0ab1d594c..dca1a8fd1 100644 --- a/netbox/dcim/tables.py +++ b/netbox/dcim/tables.py @@ -517,7 +517,7 @@ class DeviceTable(BaseTable): device_role = tables.TemplateColumn(DEVICE_ROLE, verbose_name='Role') device_type = tables.LinkColumn( 'dcim:devicetype', args=[Accessor('device_type.pk')], verbose_name='Type', - text=lambda record: record.device_type.full_name + text=lambda record: record.device_type.display_name ) class Meta(BaseTable.Meta): diff --git a/netbox/templates/dcim/device.html b/netbox/templates/dcim/device.html index 8ee50c423..29ff467ce 100644 --- a/netbox/templates/dcim/device.html +++ b/netbox/templates/dcim/device.html @@ -163,7 +163,7 @@
Model | -{{ device.device_type.full_name }} | +{{ device.device_type.display_name }} | ||||
Serial Number | diff --git a/netbox/templates/dcim/inc/devicebay.html b/netbox/templates/dcim/inc/devicebay.html index 656116c89..dc2977855 100644 --- a/netbox/templates/dcim/inc/devicebay.html +++ b/netbox/templates/dcim/inc/devicebay.html @@ -15,7 +15,7 @@ {{ devicebay.installed_device }}- {{ devicebay.installed_device.device_type.full_name }} + {{ devicebay.installed_device.device_type.display_name }} | {% else %}diff --git a/netbox/templates/dcim/inc/rack_elevation.html b/netbox/templates/dcim/inc/rack_elevation.html index e7beeb9ba..ced6eb929 100644 --- a/netbox/templates/dcim/inc/rack_elevation.html +++ b/netbox/templates/dcim/inc/rack_elevation.html @@ -26,7 +26,7 @@ | {{ device.device_role }} | -{{ device.device_type.full_name }} | +{{ device.device_type.display_name }} | {% if device.parent_bay %} {{ device.parent_bay }} |