Browse Source

Closes #157: Added manufacturer field to module model

Jeremy Stretch 8 years ago
parent
commit
a7dd2695a2

+ 1 - 1
netbox/dcim/forms.py

@@ -1273,4 +1273,4 @@ class ModuleForm(forms.ModelForm, BootstrapMixin):
 
     class Meta:
         model = Module
-        fields = ['name', 'part_id', 'serial']
+        fields = ['name', 'manufacturer', 'part_id', 'serial']

+ 21 - 0
netbox/dcim/migrations/0016_module_add_manufacturer.py

@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.8 on 2016-08-10 13:45
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('dcim', '0015_rack_add_u_height_validator'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='module',
+            name='manufacturer',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='modules', to='dcim.Manufacturer'),
+        ),
+    ]

+ 2 - 0
netbox/dcim/models.py

@@ -1097,6 +1097,8 @@ class Module(models.Model):
     device = models.ForeignKey('Device', related_name='modules', on_delete=models.CASCADE)
     parent = models.ForeignKey('self', related_name='submodules', blank=True, null=True, on_delete=models.CASCADE)
     name = models.CharField(max_length=50, verbose_name='Name')
+    manufacturer = models.ForeignKey('Manufacturer', related_name='modules', blank=True, null=True,
+                                     on_delete=models.PROTECT)
     part_id = models.CharField(max_length=50, verbose_name='Part ID', blank=True)
     serial = models.CharField(max_length=50, verbose_name='Serial number', blank=True)
     discovered = models.BooleanField(default=False, verbose_name='Discovered')

+ 2 - 1
netbox/dcim/views.py

@@ -680,7 +680,8 @@ class DeviceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
 def device_inventory(request, pk):
 
     device = get_object_or_404(Device, pk=pk)
-    modules = Module.objects.filter(device=device, parent=None).prefetch_related('submodules')
+    modules = Module.objects.filter(device=device, parent=None).select_related('manufacturer')\
+        .prefetch_related('submodules')
 
     return render(request, 'dcim/device_inventory.html', {
         'device': device,

+ 5 - 0
netbox/templates/dcim/device_inventory.html

@@ -32,6 +32,7 @@
                     <tr>
                         <th>Module</th>
                         <th></th>
+                        <th>Manufacturer</th>
                         <th>Part Number</th>
                         <th>Serial Number</th>
                         <th></th>
@@ -42,6 +43,7 @@
                         <tr>
                             <td>{{ m.name }}</td>
                             <td>{% if not m.discovered %}<i class="fa fa-asterisk" title="Manually created"></i>{% endif %}</td>
+                            <td>{{ m.manufacturer|default:'' }}</td>
                             <td>{{ m.part_id }}</td>
                             <td>{{ m.serial }}</td>
                             <td class="text-right">
@@ -57,6 +59,7 @@
                             <tr>
                                 <td style="padding-left: 20px">{{ m2.name }}</td>
                                 <td>{% if not m2.discovered %}<i class="fa fa-asterisk" title="Manually created"></i>{% endif %}</td>
+                                <td>{{ m2.manufacturer|default:'' }}</td>
                                 <td>{{ m2.part_id }}</td>
                                 <td>{{ m2.serial }}</td>
                                 <td class="text-right">
@@ -72,6 +75,7 @@
                                 <tr>
                                     <td style="padding-left: 40px">{{ m3.name }}</td>
                                     <td>{% if not m3.discovered %}<i class="fa fa-asterisk" title="Manually created"></i>{% endif %}</td>
+                                    <td>{{ m3.manufacturer|default:'' }}</td>
                                     <td>{{ m3.part_id }}</td>
                                     <td>{{ m3.serial }}</td>
                                     <td class="text-right">
@@ -87,6 +91,7 @@
                                     <tr>
                                         <td style="padding-left: 60px">{{ m4.name }}</td>
                                         <td>{% if not m4.discovered %}<i class="fa fa-asterisk" title="Manually created"></i>{% endif %}</td>
+                                        <td>{{ m4.manufacturer|default:'' }}</td>
                                         <td>{{ m4.part_id }}</td>
                                         <td>{{ m4.serial }}</td>
                                         <td class="text-right">