Closes #5858: Implement a quick-add UI widget for related objects (#18016)

* WIP

* Misc cleanup

* Add warning re: nested quick-adds
This commit is contained in:
Jeremy Stretch
2024-11-18 14:44:57 -05:00
committed by GitHub
parent 9fe6685562
commit b4f15092db
17 changed files with 236 additions and 76 deletions

View File

@@ -112,12 +112,14 @@ class SiteForm(TenancyForm, NetBoxModelForm):
region = DynamicModelChoiceField(
label=_('Region'),
queryset=Region.objects.all(),
required=False
required=False,
quick_add=True
)
group = DynamicModelChoiceField(
label=_('Group'),
queryset=SiteGroup.objects.all(),
required=False
required=False,
quick_add=True
)
asns = DynamicModelMultipleChoiceField(
queryset=ASN.objects.all(),
@@ -206,7 +208,8 @@ class RackRoleForm(NetBoxModelForm):
class RackTypeForm(NetBoxModelForm):
manufacturer = DynamicModelChoiceField(
label=_('Manufacturer'),
queryset=Manufacturer.objects.all()
queryset=Manufacturer.objects.all(),
quick_add=True
)
comments = CommentField()
slug = SlugField(
@@ -348,7 +351,8 @@ class ManufacturerForm(NetBoxModelForm):
class DeviceTypeForm(NetBoxModelForm):
manufacturer = DynamicModelChoiceField(
label=_('Manufacturer'),
queryset=Manufacturer.objects.all()
queryset=Manufacturer.objects.all(),
quick_add=True
)
default_platform = DynamicModelChoiceField(
label=_('Default platform'),
@@ -436,7 +440,8 @@ class PlatformForm(NetBoxModelForm):
manufacturer = DynamicModelChoiceField(
label=_('Manufacturer'),
queryset=Manufacturer.objects.all(),
required=False
required=False,
quick_add=True
)
config_template = DynamicModelChoiceField(
label=_('Config template'),
@@ -508,7 +513,8 @@ class DeviceForm(TenancyForm, NetBoxModelForm):
)
role = DynamicModelChoiceField(
label=_('Device role'),
queryset=DeviceRole.objects.all()
queryset=DeviceRole.objects.all(),
quick_add=True
)
platform = DynamicModelChoiceField(
label=_('Platform'),
@@ -750,7 +756,8 @@ class PowerFeedForm(TenancyForm, NetBoxModelForm):
power_panel = DynamicModelChoiceField(
label=_('Power panel'),
queryset=PowerPanel.objects.all(),
selector=True
selector=True,
quick_add=True
)
rack = DynamicModelChoiceField(
label=_('Rack'),