Browse Source

Fixes #10383: Fix assignment of component templates to module types via web UI

jeremystretch 3 years ago
parent
commit
4a9831bd23
2 changed files with 12 additions and 0 deletions
  1. 1 0
      docs/release-notes/version-3.3.md
  2. 11 0
      netbox/dcim/forms/models.py

+ 1 - 0
docs/release-notes/version-3.3.md

@@ -4,6 +4,7 @@
 
 ### Bug Fixes
 
+* [#10383](https://github.com/netbox-community/netbox/issues/10383) - Fix assignment of component templates to module types via web UI
 * [#10387](https://github.com/netbox-community/netbox/issues/10387) - Fix `MultiValueDictKeyError` exception when editing a device interface
 
 ---

+ 11 - 0
netbox/dcim/forms/models.py

@@ -1000,11 +1000,22 @@ class ComponentTemplateForm(BootstrapMixin, forms.ModelForm):
 
 
 class ModularComponentTemplateForm(ComponentTemplateForm):
+    device_type = DynamicModelChoiceField(
+        queryset=DeviceType.objects.all().all(),
+        required=False
+    )
     module_type = DynamicModelChoiceField(
         queryset=ModuleType.objects.all(),
         required=False
     )
 
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+
+        # Disable reassignment of ModuleType when editing an existing instance
+        if self.instance.pk:
+            self.fields['module_type'].disabled = True
+
 
 class ConsolePortTemplateForm(ModularComponentTemplateForm):
     fieldsets = (