Sfoglia il codice sorgente

Fixes #21683: Fix support for importing port mappings on device/module types (#21921)

Jeremy Stretch 1 mese fa
parent
commit
f0fc93d827
1 ha cambiato i file con 17 aggiunte e 1 eliminazioni
  1. 17 1
      netbox/dcim/forms/object_import.py

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

@@ -150,9 +150,25 @@ class PortTemplateMappingImportForm(forms.ModelForm):
     class Meta:
     class Meta:
         model = PortTemplateMapping
         model = PortTemplateMapping
         fields = [
         fields = [
-            'front_port', 'front_port_position', 'rear_port', 'rear_port_position',
+            'device_type', 'module_type', 'front_port', 'front_port_position', 'rear_port', 'rear_port_position',
         ]
         ]
 
 
+    def clean_device_type(self):
+        if device_type := self.cleaned_data['device_type']:
+            front_port = self.fields['front_port']
+            rear_port = self.fields['rear_port']
+            front_port.queryset = front_port.queryset.filter(device_type=device_type)
+            rear_port.queryset = rear_port.queryset.filter(device_type=device_type)
+        return device_type
+
+    def clean_module_type(self):
+        if module_type := self.cleaned_data['module_type']:
+            front_port = self.fields['front_port']
+            rear_port = self.fields['rear_port']
+            front_port.queryset = front_port.queryset.filter(module_type=module_type)
+            rear_port.queryset = rear_port.queryset.filter(module_type=module_type)
+        return module_type
+
 
 
 class ModuleBayTemplateImportForm(forms.ModelForm):
 class ModuleBayTemplateImportForm(forms.ModelForm):