mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-26 01:06:11 -06:00
Refactor logic for finding initial component assignment on InventoryItems
This commit is contained in:
parent
93eecfcd80
commit
9cac9f10e3
@ -1623,30 +1623,23 @@ class InventoryItemForm(DeviceComponentForm):
|
|||||||
initial = kwargs.get('initial', {}).copy()
|
initial = kwargs.get('initial', {}).copy()
|
||||||
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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user