1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Fixes #6936: Add missing parent column to inventory item import form

This commit is contained in:
jeremystretch
2021-08-10 20:24:57 -04:00
parent 1bb596fc7e
commit 35b8fc6e83
3 changed files with 26 additions and 4 deletions

View File

@ -14,6 +14,7 @@
* [#6908](https://github.com/netbox-community/netbox/issues/6908) - Allow assignment of scope to VLAN groups upon import * [#6908](https://github.com/netbox-community/netbox/issues/6908) - Allow assignment of scope to VLAN groups upon import
* [#6909](https://github.com/netbox-community/netbox/issues/6909) - Remove extraneous `site` column from VLAN group import form * [#6909](https://github.com/netbox-community/netbox/issues/6909) - Remove extraneous `site` column from VLAN group import form
* [#6910](https://github.com/netbox-community/netbox/issues/6910) - Fix exception on invalid CSV import column name * [#6910](https://github.com/netbox-community/netbox/issues/6910) - Fix exception on invalid CSV import column name
* [#6936](https://github.com/netbox-community/netbox/issues/6936) - Add missing `parent` column to inventory item import form
--- ---

View File

@ -3852,11 +3852,32 @@ class InventoryItemCSVForm(CustomFieldModelCSVForm):
to_field_name='name', to_field_name='name',
required=False required=False
) )
parent = CSVModelChoiceField(
queryset=Device.objects.all(),
to_field_name='name',
required=False,
help_text='Parent inventory item'
)
class Meta: class Meta:
model = InventoryItem model = InventoryItem
fields = InventoryItem.csv_headers fields = InventoryItem.csv_headers
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Limit parent choices to inventory items belonging to this device
device = None
if self.is_bound and 'device' in self.data:
try:
device = self.fields['device'].to_python(self.data['device'])
except forms.ValidationError:
pass
if device:
self.fields['parent'].queryset = InventoryItem.objects.filter(device=device)
else:
self.fields['parent'].queryset = InventoryItem.objects.none()
class InventoryItemBulkCreateForm( class InventoryItemBulkCreateForm(
form_from_model(InventoryItem, ['manufacturer', 'part_id', 'serial', 'asset_tag', 'discovered']), form_from_model(InventoryItem, ['manufacturer', 'part_id', 'serial', 'asset_tag', 'discovered']),

View File

@ -1736,10 +1736,10 @@ class InventoryItemTestCase(ViewTestCases.DeviceComponentViewTestCase):
} }
cls.csv_data = ( cls.csv_data = (
"device,name", "device,name,parent",
"Device 1,Inventory Item 4", "Device 1,Inventory Item 4,Inventory Item 1",
"Device 1,Inventory Item 5", "Device 1,Inventory Item 5,Inventory Item 2",
"Device 1,Inventory Item 6", "Device 1,Inventory Item 6,Inventory Item 3",
) )