diff --git a/docs/release-notes/version-2.10.md b/docs/release-notes/version-2.10.md index 48f5ae1d7..4291b641d 100644 --- a/docs/release-notes/version-2.10.md +++ b/docs/release-notes/version-2.10.md @@ -6,6 +6,7 @@ ### New Features +* [#1692](https://github.com/netbox-community/netbox/issues/1692) - Allow assigment of inventory items to parent items in web UI * [#5146](https://github.com/netbox-community/netbox/issues/5146) - Add custom fields support for cables, power panels, rack reservations, and virtual chassis ### Other Changes diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 1599b343d..1096ae6a7 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -3284,6 +3284,13 @@ class InventoryItemForm(BootstrapMixin, forms.ModelForm): queryset=Device.objects.all(), display_field='display_name' ) + parent = DynamicModelChoiceField( + queryset=InventoryItem.objects.all(), + required=False, + query_params={ + 'device_id': '$device' + } + ) manufacturer = DynamicModelChoiceField( queryset=Manufacturer.objects.all(), required=False @@ -3296,7 +3303,8 @@ class InventoryItemForm(BootstrapMixin, forms.ModelForm): class Meta: model = InventoryItem fields = [ - 'name', 'label', 'device', 'manufacturer', 'part_id', 'serial', 'asset_tag', 'description', 'tags', + 'device', 'parent', 'name', 'label', 'manufacturer', 'part_id', 'serial', 'asset_tag', 'description', + 'tags', ] @@ -3305,6 +3313,13 @@ class InventoryItemCreateForm(ComponentCreateForm): queryset=Manufacturer.objects.all(), required=False ) + parent = DynamicModelChoiceField( + queryset=InventoryItem.objects.all(), + required=False, + query_params={ + 'device_id': '$device' + } + ) part_id = forms.CharField( max_length=50, required=False, @@ -3319,8 +3334,8 @@ class InventoryItemCreateForm(ComponentCreateForm): required=False, ) field_order = ( - 'device', 'name_pattern', 'label_pattern', 'manufacturer', 'part_id', 'serial', 'asset_tag', 'description', - 'tags', + 'device', 'parent', 'name_pattern', 'label_pattern', 'manufacturer', 'part_id', 'serial', 'asset_tag', + 'description', 'tags', ) diff --git a/netbox/templates/dcim/inc/inventoryitem.html b/netbox/templates/dcim/inc/inventoryitem.html index 9bcfffa72..d56ae03c9 100644 --- a/netbox/templates/dcim/inc/inventoryitem.html +++ b/netbox/templates/dcim/inc/inventoryitem.html @@ -31,7 +31,7 @@ {{ item.description|placeholder }} {% if perms.dcim.change_inventoryitem %} - + {% endif %} {% if perms.dcim.delete_inventoryitem %}