diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index ffa027af6..3c360c4a1 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -331,7 +331,7 @@ class DeviceBayTemplateSerializer(ValidatedModelSerializer): class Meta: model = DeviceBayTemplate - fields = ['id', 'device_type', 'name'] + fields = ['id', 'device_type', 'name', 'label'] # @@ -603,7 +603,7 @@ class DeviceBaySerializer(TaggitSerializer, ValidatedModelSerializer): class Meta: model = DeviceBay - fields = ['id', 'device', 'name', 'description', 'installed_device', 'tags'] + fields = ['id', 'device', 'name', 'label', 'description', 'installed_device', 'tags'] # diff --git a/netbox/dcim/migrations/0107_component_labels.py b/netbox/dcim/migrations/0107_component_labels.py index 9aa496134..8e5ab8156 100644 --- a/netbox/dcim/migrations/0107_component_labels.py +++ b/netbox/dcim/migrations/0107_component_labels.py @@ -60,4 +60,14 @@ class Migration(migrations.Migration): name='label', field=models.CharField(blank=True, max_length=64), ), + migrations.AddField( + model_name='devicebay', + name='label', + field=models.CharField(blank=True, max_length=64), + ), + migrations.AddField( + model_name='devicebaytemplate', + name='label', + field=models.CharField(blank=True, max_length=64), + ), ] diff --git a/netbox/dcim/models/device_component_templates.py b/netbox/dcim/models/device_component_templates.py index 53080d8f6..f966b0616 100644 --- a/netbox/dcim/models/device_component_templates.py +++ b/netbox/dcim/models/device_component_templates.py @@ -433,14 +433,16 @@ class DeviceBayTemplate(ComponentTemplateModel): max_length=100, blank=True ) + label = models.CharField( + max_length=64, + blank=True, + help_text="Physical label" + ) class Meta: ordering = ('device_type', '_name') unique_together = ('device_type', 'name') - def __str__(self): - return self.name - def instantiate(self, device): return DeviceBay( device=device, diff --git a/netbox/dcim/models/device_components.py b/netbox/dcim/models/device_components.py index 022b2733d..a542b0197 100644 --- a/netbox/dcim/models/device_components.py +++ b/netbox/dcim/models/device_components.py @@ -1009,6 +1009,11 @@ class DeviceBay(ComponentModel): max_length=100, blank=True ) + label = models.CharField( + max_length=64, + blank=True, + help_text="Physical label" + ) installed_device = models.OneToOneField( to='dcim.Device', on_delete=models.SET_NULL, @@ -1025,6 +1030,8 @@ class DeviceBay(ComponentModel): unique_together = ('device', 'name') def __str__(self): + if self.label: + return '{} - {} ({})'.format(self.device.name, self.name, self.label) return '{} - {}'.format(self.device.name, self.name) def get_absolute_url(self):