Refactor logic for finding initial component assignment on InventoryItems

This commit is contained in:
kkthxbye-code 2022-12-20 11:46:09 +01:00
parent 93eecfcd80
commit 9cac9f10e3

View File

@ -1624,29 +1624,22 @@ class InventoryItemForm(DeviceComponentForm):
component_type = initial.get('component_type') component_type = initial.get('component_type')
component_id = initial.get('component_id') component_id = initial.get('component_id')
# Used for picking the default active tab for component selection
self.no_component = True
if instance: if instance:
if type(instance.component) is ConsolePort: # When editing set the initial value for component selectin
initial['consoleport'] = instance.component for component_model in ContentType.objects.filter(MODULAR_COMPONENT_MODELS):
elif type(instance.component) is ConsoleServerPort: if type(instance.component) is component_model.model_class():
initial['consoleserverport'] = instance.component initial[component_model.model] = instance.component
elif type(instance.component) is FrontPort: self.no_component = False
initial['frontport'] = instance.component break
elif type(instance.component) is Interface:
initial['interface'] = instance.component
elif type(instance.component) is PowerPort:
initial['powerport'] = instance.component
elif type(instance.component) is RearPort:
initial['rearport'] = instance.component
else:
self.no_component = True
elif component_type and component_id: elif component_type and component_id:
self.no_component = True # When adding the InventoryItem from a component page
if content_type := ContentType.objects.filter(MODULAR_COMPONENT_MODELS).filter(pk=component_type).first(): if content_type := ContentType.objects.filter(MODULAR_COMPONENT_MODELS).filter(pk=component_type).first():
if component := content_type.model_class().objects.filter(pk=component_id).first(): if component := content_type.model_class().objects.filter(pk=component_id).first():
initial[content_type.model] = component initial[content_type.model] = component
self.no_component = False self.no_component = False
else:
self.no_component = True
kwargs['initial'] = initial kwargs['initial'] = initial