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

Add `label` to DeviceBay models and serializers

Jonathan Senecal 5 лет назад
Родитель
Сommit
a37d06064a

+ 2 - 2
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']
 
 
 #

+ 10 - 0
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),
+        ),
     ]

+ 5 - 3
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,

+ 7 - 0
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):