Fix support for enable=false under DeviceBayTemplateImportForm

This commit is contained in:
Jeremy Stretch 2026-08-14 14:27:49 -04:00
parent 8bffd79360
commit e57ab760df
3 changed files with 11 additions and 22 deletions

View File

@ -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',
]

View File

@ -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'),

View File

@ -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()