Closes #20304: Object owners (#20634)

This commit is contained in:
Jeremy Stretch
2025-10-24 16:08:01 -04:00
committed by GitHub
parent 52d4498caf
commit be74436884
196 changed files with 15831 additions and 2715 deletions

View File

@@ -5,9 +5,11 @@ from dcim.forms.mixins import ScopedImportForm
from dcim.models import Device, DeviceRole, Platform, Site
from extras.models import ConfigTemplate
from ipam.models import VRF
from netbox.forms import NetBoxModelImportForm
from netbox.forms import (
NetBoxModelImportForm, OrganizationalModelImportForm, OwnerCSVMixin, PrimaryModelImportForm,
)
from tenancy.models import Tenant
from utilities.forms.fields import CSVChoiceField, CSVModelChoiceField, SlugField
from utilities.forms.fields import CSVChoiceField, CSVModelChoiceField
from virtualization.choices import *
from virtualization.models import *
@@ -21,23 +23,21 @@ __all__ = (
)
class ClusterTypeImportForm(NetBoxModelImportForm):
slug = SlugField()
class ClusterTypeImportForm(OrganizationalModelImportForm):
class Meta:
model = ClusterType
fields = ('name', 'slug', 'description', 'tags')
fields = ('name', 'slug', 'description', 'owner', 'tags')
class ClusterGroupImportForm(NetBoxModelImportForm):
slug = SlugField()
class ClusterGroupImportForm(OrganizationalModelImportForm):
class Meta:
model = ClusterGroup
fields = ('name', 'slug', 'description', 'tags')
fields = ('name', 'slug', 'description', 'owner', 'tags')
class ClusterImportForm(ScopedImportForm, NetBoxModelImportForm):
class ClusterImportForm(ScopedImportForm, PrimaryModelImportForm):
type = CSVModelChoiceField(
label=_('Type'),
queryset=ClusterType.objects.all(),
@@ -74,14 +74,15 @@ class ClusterImportForm(ScopedImportForm, NetBoxModelImportForm):
class Meta:
model = Cluster
fields = (
'name', 'type', 'group', 'status', 'scope_type', 'scope_id', 'tenant', 'description', 'comments', 'tags',
'name', 'type', 'group', 'status', 'scope_type', 'scope_id', 'tenant', 'description', 'owner', 'comments',
'tags',
)
labels = {
'scope_id': _('Scope ID'),
}
class VirtualMachineImportForm(NetBoxModelImportForm):
class VirtualMachineImportForm(PrimaryModelImportForm):
status = CSVChoiceField(
label=_('Status'),
choices=VirtualMachineStatusChoices,
@@ -143,11 +144,11 @@ class VirtualMachineImportForm(NetBoxModelImportForm):
model = VirtualMachine
fields = (
'name', 'status', 'role', 'site', 'cluster', 'device', 'tenant', 'platform', 'vcpus', 'memory', 'disk',
'description', 'serial', 'config_template', 'comments', 'tags',
'description', 'serial', 'config_template', 'comments', 'owner', 'tags',
)
class VMInterfaceImportForm(NetBoxModelImportForm):
class VMInterfaceImportForm(OwnerCSVMixin, NetBoxModelImportForm):
virtual_machine = CSVModelChoiceField(
label=_('Virtual machine'),
queryset=VirtualMachine.objects.all(),
@@ -185,7 +186,7 @@ class VMInterfaceImportForm(NetBoxModelImportForm):
model = VMInterface
fields = (
'virtual_machine', 'name', 'parent', 'bridge', 'enabled', 'mtu', 'description', 'mode',
'vrf', 'tags'
'vrf', 'owner', 'tags'
)
def __init__(self, data=None, *args, **kwargs):
@@ -208,7 +209,7 @@ class VMInterfaceImportForm(NetBoxModelImportForm):
return self.cleaned_data['enabled']
class VirtualDiskImportForm(NetBoxModelImportForm):
class VirtualDiskImportForm(OwnerCSVMixin, NetBoxModelImportForm):
virtual_machine = CSVModelChoiceField(
label=_('Virtual machine'),
queryset=VirtualMachine.objects.all(),
@@ -218,5 +219,5 @@ class VirtualDiskImportForm(NetBoxModelImportForm):
class Meta:
model = VirtualDisk
fields = (
'virtual_machine', 'name', 'size', 'description', 'tags'
'virtual_machine', 'name', 'size', 'description', 'owner', 'tags'
)