Explorar el Código

Fixes #17676: Fix support for module bay creation when bulk importing module types (#19311)

Jeremy Stretch hace 9 meses
padre
commit
e1b2b4b536
Se han modificado 3 ficheros con 16 adiciones y 1 borrados
  1. 1 1
      netbox/dcim/forms/object_import.py
  2. 13 0
      netbox/dcim/tests/test_views.py
  3. 2 0
      netbox/dcim/views.py

+ 1 - 1
netbox/dcim/forms/object_import.py

@@ -159,7 +159,7 @@ class ModuleBayTemplateImportForm(forms.ModelForm):
     class Meta:
         model = ModuleBayTemplate
         fields = [
-            'device_type', 'name', 'label', 'position', 'description',
+            'device_type', 'module_type', 'name', 'label', 'position', 'description',
         ]
 
 

+ 13 - 0
netbox/dcim/tests/test_views.py

@@ -1205,6 +1205,13 @@ front-ports:
   - name: Front Port 3
     type: 8p8c
     rear_port: Rear Port 3
+module-bays:
+  - name: Module Bay 1
+    position: 1
+  - name: Module Bay 2
+    position: 2
+  - name: Module Bay 3
+    position: 3
 """
 
         # Create the manufacturer
@@ -1222,6 +1229,7 @@ front-ports:
             'dcim.add_interfacetemplate',
             'dcim.add_frontporttemplate',
             'dcim.add_rearporttemplate',
+            'dcim.add_modulebaytemplate',
         )
 
         form_data = {
@@ -1276,6 +1284,11 @@ front-ports:
         self.assertEqual(fp1.rear_port, rp1)
         self.assertEqual(fp1.rear_port_position, 1)
 
+        self.assertEqual(module_type.modulebaytemplates.count(), 3)
+        mb1 = ModuleBayTemplate.objects.first()
+        self.assertEqual(mb1.name, 'Module Bay 1')
+        self.assertEqual(mb1.position, '1')
+
     def test_export_objects(self):
         url = reverse('dcim:moduletype_list')
         self.add_permissions('dcim.view_moduletype')

+ 2 - 0
netbox/dcim/views.py

@@ -1508,6 +1508,7 @@ class ModuleTypeImportView(generic.BulkImportView):
         'dcim.add_interfacetemplate',
         'dcim.add_frontporttemplate',
         'dcim.add_rearporttemplate',
+        'dcim.add_modulebaytemplate',
     ]
     queryset = ModuleType.objects.all()
     model_form = forms.ModuleTypeImportForm
@@ -1519,6 +1520,7 @@ class ModuleTypeImportView(generic.BulkImportView):
         'interfaces': forms.InterfaceTemplateImportForm,
         'rear-ports': forms.RearPortTemplateImportForm,
         'front-ports': forms.FrontPortTemplateImportForm,
+        'module-bays': forms.ModuleBayTemplateImportForm,
     }
 
     def prep_related_object_data(self, parent, data):