diff --git a/netbox/virtualization/forms/bulk_import.py b/netbox/virtualization/forms/bulk_import.py index 17efc567a..b9126a8c0 100644 --- a/netbox/virtualization/forms/bulk_import.py +++ b/netbox/virtualization/forms/bulk_import.py @@ -1,3 +1,4 @@ +from django.contrib.contenttypes.models import ContentType from django.utils.translation import gettext_lazy as _ from dcim.choices import InterfaceModeChoices @@ -6,8 +7,9 @@ from extras.models import ConfigTemplate from ipam.models import VRF from netbox.forms import NetBoxModelImportForm from tenancy.models import Tenant -from utilities.forms.fields import CSVChoiceField, CSVModelChoiceField, SlugField +from utilities.forms.fields import CSVChoiceField, CSVContentTypeField, CSVModelChoiceField, SlugField from virtualization.choices import * +from virtualization.constants import CLUSTER_SCOPE_TYPES from virtualization.models import * __all__ = ( @@ -55,6 +57,11 @@ class ClusterImportForm(NetBoxModelImportForm): choices=ClusterStatusChoices, help_text=_('Operational status') ) + scope_type = CSVContentTypeField( + queryset=ContentType.objects.filter(model__in=CLUSTER_SCOPE_TYPES), + required=False, + label=_('Scope type (app & model)') + ) site = CSVModelChoiceField( label=_('Site'), queryset=Site.objects.all(), @@ -72,7 +79,10 @@ class ClusterImportForm(NetBoxModelImportForm): class Meta: model = Cluster - fields = ('name', 'type', 'group', 'status', 'site', 'tenant', 'description', 'comments', 'tags') + fields = ('name', 'type', 'group', 'status', 'scope_type', 'scope_id', 'tenant', 'description', 'comments', 'tags') + labels = { + 'scope_id': 'Scope ID', + } class VirtualMachineImportForm(NetBoxModelImportForm):