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

112 lines
2.8 KiB
Python
Raw Normal View History

from django.contrib.contenttypes.models import ContentType
from django.utils.translation import gettext_lazy as _
from netbox.forms import NetBoxModelImportForm
2021-10-18 11:45:05 -04:00
from tenancy.models import *
from utilities.forms.fields import CSVContentTypeField, CSVModelChoiceField, SlugField
2021-09-27 17:19:05 -04:00
__all__ = (
'ContactAssignmentImportForm',
'ContactImportForm',
'ContactGroupImportForm',
'ContactRoleImportForm',
'TenantImportForm',
'TenantGroupImportForm',
2021-09-27 17:19:05 -04:00
)
2021-10-18 11:45:05 -04:00
#
# Tenants
#
class TenantGroupImportForm(NetBoxModelImportForm):
2021-09-27 17:19:05 -04:00
parent = CSVModelChoiceField(
label=_('Parent'),
2021-09-27 17:19:05 -04:00
queryset=TenantGroup.objects.all(),
required=False,
to_field_name='name',
help_text=_('Parent group')
2021-09-27 17:19:05 -04:00
)
slug = SlugField()
class Meta:
model = TenantGroup
fields = ('name', 'slug', 'parent', 'description', 'tags')
2021-09-27 17:19:05 -04:00
class TenantImportForm(NetBoxModelImportForm):
2021-09-27 17:19:05 -04:00
slug = SlugField()
group = CSVModelChoiceField(
label=_('Group'),
2021-09-27 17:19:05 -04:00
queryset=TenantGroup.objects.all(),
required=False,
to_field_name='name',
help_text=_('Assigned group')
2021-09-27 17:19:05 -04:00
)
class Meta:
model = Tenant
fields = ('name', 'slug', 'group', 'description', 'comments', 'tags')
2021-10-18 11:45:05 -04:00
#
# Contacts
#
class ContactGroupImportForm(NetBoxModelImportForm):
2021-10-18 11:45:05 -04:00
parent = CSVModelChoiceField(
label=_('Parent'),
2021-10-18 11:45:05 -04:00
queryset=ContactGroup.objects.all(),
required=False,
to_field_name='name',
help_text=_('Parent group')
2021-10-18 11:45:05 -04:00
)
slug = SlugField()
class Meta:
model = ContactGroup
fields = ('name', 'slug', 'parent', 'description', 'tags')
2021-10-18 11:45:05 -04:00
class ContactRoleImportForm(NetBoxModelImportForm):
2021-10-18 11:45:05 -04:00
slug = SlugField()
class Meta:
model = ContactRole
fields = ('name', 'slug', 'description')
class ContactImportForm(NetBoxModelImportForm):
2021-10-18 11:45:05 -04:00
group = CSVModelChoiceField(
label=_('Group'),
2021-10-18 11:45:05 -04:00
queryset=ContactGroup.objects.all(),
required=False,
to_field_name='name',
help_text=_('Assigned group')
2021-10-18 11:45:05 -04:00
)
class Meta:
model = Contact
fields = ('name', 'title', 'phone', 'email', 'address', 'link', 'group', 'description', 'comments', 'tags')
class ContactAssignmentImportForm(NetBoxModelImportForm):
content_type = CSVContentTypeField(
queryset=ContentType.objects.all(),
help_text=_("One or more assigned object types")
)
contact = CSVModelChoiceField(
queryset=Contact.objects.all(),
to_field_name='name',
help_text=_('Assigned contact')
)
role = CSVModelChoiceField(
queryset=ContactRole.objects.all(),
to_field_name='name',
help_text=_('Assigned role')
)
class Meta:
model = ContactAssignment
fields = ('content_type', 'object_id', 'contact', 'priority', 'role')