From e57ab760df54e36c451410432d58edfe528a8cd1 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 14 Aug 2026 14:27:49 -0400 Subject: [PATCH] Fix support for enable=false under DeviceBayTemplateImportForm --- netbox/dcim/forms/object_import.py | 9 +-------- netbox/dcim/tests/test_forms.py | 14 -------------- netbox/dcim/tests/test_views.py | 10 ++++++++++ 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/netbox/dcim/forms/object_import.py b/netbox/dcim/forms/object_import.py index 0cf73dad5..ea16633e9 100644 --- a/netbox/dcim/forms/object_import.py +++ b/netbox/dcim/forms/object_import.py @@ -230,13 +230,6 @@ class ModuleBayTemplateImportForm(forms.ModelForm): 'module_bay_types', ] - def clean_enabled(self): - # A dict-bound BooleanField resolves a missing key to False, not the model's own - # default=True -- match ModuleBayImportForm's equivalent CSV-import behavior. - if 'enabled' not in self.data: - return True - return self.cleaned_data['enabled'] - def _scope_module_bay_types(self, manufacturer): module_bay_types = self.fields['module_bay_types'] module_bay_types.queryset = module_bay_types.queryset.filter( @@ -286,7 +279,7 @@ class DeviceBayTemplateImportForm(forms.ModelForm): class Meta: model = DeviceBayTemplate fields = [ - 'device_type', 'name', 'label', 'description', + 'device_type', 'name', 'label', 'enabled', 'description', ] diff --git a/netbox/dcim/tests/test_forms.py b/netbox/dcim/tests/test_forms.py index 6b1246153..b1711997b 100644 --- a/netbox/dcim/tests/test_forms.py +++ b/netbox/dcim/tests/test_forms.py @@ -294,20 +294,6 @@ class ModuleBayTemplateImportFormTestCase(TestCase): ) self.assertNotIn(global_type, module_bay_template.module_bay_types.all()) - def test_enabled_defaults_true_when_omitted(self): - device_type = DeviceType.objects.create( - manufacturer=Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1'), - model='Device Type 1', - slug='device-type-1', - ) - - form = ModuleBayTemplateImportForm({ - 'device_type': device_type.pk, - 'name': 'Module Bay 1', - }) - self.assertTrue(form.is_valid(), form.errors) - self.assertTrue(form.save().enabled) - def test_enabled_honors_explicit_false(self): device_type = DeviceType.objects.create( manufacturer=Manufacturer.objects.create(name='Manufacturer 1', slug='manufacturer-1'), diff --git a/netbox/dcim/tests/test_views.py b/netbox/dcim/tests/test_views.py index e33b93048..d0a9d9ef7 100644 --- a/netbox/dcim/tests/test_views.py +++ b/netbox/dcim/tests/test_views.py @@ -1004,10 +1004,12 @@ module-bays: module_bay_types: - SFP28 - name: Module Bay 2 + enabled: false - name: Module Bay 3 device-bays: - name: Device Bay 1 - name: Device Bay 2 + enabled: false - name: Device Bay 3 inventory-items: - name: Inventory Item 1 @@ -1133,10 +1135,18 @@ inventory-items: mb1 = ModuleBayTemplate.objects.first() self.assertEqual(mb1.name, 'Module Bay 1') self.assertEqual(list(mb1.module_bay_types.values_list('name', flat=True)), ['SFP28']) + self.assertTrue(mb1.enabled) + + mb2 = ModuleBayTemplate.objects.filter(name='Module Bay 2').first() + self.assertFalse(mb2.enabled) self.assertEqual(device_type.devicebaytemplates.count(), 3) db1 = DeviceBayTemplate.objects.first() self.assertEqual(db1.name, 'Device Bay 1') + self.assertTrue(db1.enabled) + + db2 = DeviceBayTemplate.objects.filter(name='Device Bay 2').first() + self.assertFalse(db2.enabled) self.assertEqual(device_type.inventoryitemtemplates.count(), 3) ii1 = InventoryItemTemplate.objects.first()