mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
154 lines
3.6 KiB
Python
154 lines
3.6 KiB
Python
from django import forms
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from netbox.forms import NetBoxModelForm
|
|
from tenancy.models import *
|
|
from utilities.forms.fields import CommentField, DynamicModelChoiceField, SlugField
|
|
from utilities.forms.rendering import FieldSet, ObjectAttribute
|
|
|
|
__all__ = (
|
|
'ContactAssignmentForm',
|
|
'ContactForm',
|
|
'ContactGroupForm',
|
|
'ContactRoleForm',
|
|
'TenantForm',
|
|
'TenantGroupForm',
|
|
)
|
|
|
|
|
|
#
|
|
# Tenants
|
|
#
|
|
|
|
class TenantGroupForm(NetBoxModelForm):
|
|
parent = DynamicModelChoiceField(
|
|
label=_('Parent'),
|
|
queryset=TenantGroup.objects.all(),
|
|
required=False
|
|
)
|
|
slug = SlugField()
|
|
|
|
fieldsets = (
|
|
FieldSet('parent', 'name', 'slug', 'description', 'tags', name=_('Tenant Group')),
|
|
)
|
|
|
|
class Meta:
|
|
model = TenantGroup
|
|
fields = [
|
|
'parent', 'name', 'slug', 'description', 'tags',
|
|
]
|
|
|
|
|
|
class TenantForm(NetBoxModelForm):
|
|
slug = SlugField()
|
|
group = DynamicModelChoiceField(
|
|
label=_('Group'),
|
|
queryset=TenantGroup.objects.all(),
|
|
required=False
|
|
)
|
|
comments = CommentField()
|
|
|
|
fieldsets = (
|
|
FieldSet('name', 'slug', 'group', 'description', 'tags', name=_('Tenant')),
|
|
)
|
|
|
|
class Meta:
|
|
model = Tenant
|
|
fields = (
|
|
'name', 'slug', 'group', 'description', 'comments', 'tags',
|
|
)
|
|
|
|
|
|
#
|
|
# Contacts
|
|
#
|
|
|
|
class ContactGroupForm(NetBoxModelForm):
|
|
parent = DynamicModelChoiceField(
|
|
label=_('Parent'),
|
|
queryset=ContactGroup.objects.all(),
|
|
required=False
|
|
)
|
|
slug = SlugField()
|
|
|
|
fieldsets = (
|
|
FieldSet('parent', 'name', 'slug', 'description', 'tags', name=_('Contact Group')),
|
|
)
|
|
|
|
class Meta:
|
|
model = ContactGroup
|
|
fields = ('parent', 'name', 'slug', 'description', 'tags')
|
|
|
|
|
|
class ContactRoleForm(NetBoxModelForm):
|
|
slug = SlugField()
|
|
|
|
fieldsets = (
|
|
FieldSet('name', 'slug', 'description', 'tags', name=_('Contact Role')),
|
|
)
|
|
|
|
class Meta:
|
|
model = ContactRole
|
|
fields = ('name', 'slug', 'description', 'tags')
|
|
|
|
|
|
class ContactForm(NetBoxModelForm):
|
|
group = DynamicModelChoiceField(
|
|
label=_('Group'),
|
|
queryset=ContactGroup.objects.all(),
|
|
required=False
|
|
)
|
|
comments = CommentField()
|
|
|
|
fieldsets = (
|
|
FieldSet(
|
|
'group', 'name', 'title', 'phone', 'email', 'address', 'link', 'description', 'tags',
|
|
name=_('Contact')
|
|
),
|
|
)
|
|
|
|
class Meta:
|
|
model = Contact
|
|
fields = (
|
|
'group', 'name', 'title', 'phone', 'email', 'address', 'link', 'description', 'comments', 'tags',
|
|
)
|
|
widgets = {
|
|
'address': forms.Textarea(attrs={'rows': 3}),
|
|
}
|
|
|
|
|
|
class ContactAssignmentForm(NetBoxModelForm):
|
|
group = DynamicModelChoiceField(
|
|
label=_('Group'),
|
|
queryset=ContactGroup.objects.all(),
|
|
required=False,
|
|
initial_params={
|
|
'contacts': '$contact'
|
|
}
|
|
)
|
|
contact = DynamicModelChoiceField(
|
|
label=_('Contact'),
|
|
queryset=Contact.objects.all(),
|
|
query_params={
|
|
'group_id': '$group'
|
|
}
|
|
)
|
|
role = DynamicModelChoiceField(
|
|
label=_('Role'),
|
|
queryset=ContactRole.objects.all()
|
|
)
|
|
|
|
fieldsets = (
|
|
FieldSet(ObjectAttribute('object'), 'group', 'contact', 'role', 'priority', 'tags'),
|
|
)
|
|
|
|
class Meta:
|
|
model = ContactAssignment
|
|
fields = (
|
|
'object_type', 'object_id', 'group', 'contact', 'role', 'priority', 'tags'
|
|
)
|
|
widgets = {
|
|
'object_type': forms.HiddenInput(),
|
|
'object_id': forms.HiddenInput(),
|
|
}
|