diff --git a/netbox/circuits/forms.py b/netbox/circuits/forms.py index 4731c9adb..8c35d972d 100644 --- a/netbox/circuits/forms.py +++ b/netbox/circuits/forms.py @@ -9,8 +9,8 @@ from tenancy.forms import TenancyFilterForm, TenancyForm from tenancy.models import Tenant from utilities.forms import ( add_blank_choice, BootstrapMixin, CommentField, CSVChoiceField, CSVModelChoiceField, CSVModelForm, DatePicker, - DynamicModelChoiceField, DynamicModelMultipleChoiceField, SmallTextarea, SlugField, StaticSelect2, - StaticSelect2Multiple, TagFilterField, + DynamicModelChoiceField, DynamicModelMultipleChoiceField, SelectSpeedWidget, SmallTextarea, SlugField, + StaticSelect2, StaticSelect2Multiple, TagFilterField, ) from .choices import CircuitStatusChoices from .models import Circuit, CircuitTermination, CircuitType, Provider @@ -33,6 +33,10 @@ class ProviderForm(BootstrapMixin, CustomFieldModelForm): fields = [ 'name', 'slug', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'comments', 'tags', ] + fieldsets = ( + ('Provider', ('name', 'slug', 'asn')), + ('Support Info', ('account', 'portal_url', 'noc_contact', 'admin_contact')), + ) widgets = { 'noc_contact': SmallTextarea( attrs={'rows': 5} @@ -127,7 +131,7 @@ class ProviderFilterForm(BootstrapMixin, CustomFieldFilterForm): # Circuit types # -class CircuitTypeForm(BootstrapMixin, forms.ModelForm): +class CircuitTypeForm(BootstrapMixin, CustomFieldModelForm): slug = SlugField() class Meta: @@ -171,6 +175,10 @@ class CircuitForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): 'cid', 'type', 'provider', 'status', 'install_date', 'commit_rate', 'description', 'tenant_group', 'tenant', 'comments', 'tags', ] + fieldsets = ( + ('Circuit', ('provider', 'cid', 'type', 'status', 'install_date', 'commit_rate', 'description')), + ('Tenancy', ('tenant_group', 'tenant')), + ) help_texts = { 'cid': "Unique circuit ID", 'commit_rate': "Committed rate", @@ -178,6 +186,7 @@ class CircuitForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): widgets = { 'status': StaticSelect2(), 'install_date': DatePicker(), + 'commit_rate': SelectSpeedWidget(), } diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index 9fea26652..eec05dab8 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -52,7 +52,6 @@ class ProviderView(generic.ObjectView): class ProviderEditView(generic.ObjectEditView): queryset = Provider.objects.all() model_form = forms.ProviderForm - template_name = 'circuits/provider_edit.html' class ProviderDeleteView(generic.ObjectDeleteView): @@ -160,7 +159,6 @@ class CircuitView(generic.ObjectView): class CircuitEditView(generic.ObjectEditView): queryset = Circuit.objects.all() model_form = forms.CircuitForm - template_name = 'circuits/circuit_edit.html' class CircuitDeleteView(generic.ObjectDeleteView): diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 40c16d59f..30c92bad8 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -231,6 +231,14 @@ class SiteForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): 'physical_address', 'shipping_address', 'latitude', 'longitude', 'contact_name', 'contact_phone', 'contact_email', 'comments', 'tags', ] + fieldsets = ( + ('Site', ('name', 'slug', 'status', 'region', 'facility', 'asn', 'time_zone', 'description')), + ('Tenancy', ('tenant_group', 'tenant')), + ('Contact Info', ( + 'physical_address', 'shipping_address', 'latitude', 'longitude', 'contact_name', 'contact_phone', + 'contact_email', + )), + ) widgets = { 'physical_address': SmallTextarea( attrs={ @@ -780,8 +788,12 @@ class RackReservationForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class Meta: model = RackReservation fields = [ - 'rack', 'units', 'user', 'tenant_group', 'tenant', 'description', 'tags', + 'region', 'site', 'rack_group', 'rack', 'units', 'user', 'tenant_group', 'tenant', 'description', 'tags', ] + fieldsets = ( + ('Reservation', ('region', 'site', 'rack_group', 'rack', 'units', 'user', 'description')), + ('Tenancy', ('tenant_group', 'tenant')), + ) class RackReservationCSVForm(CustomFieldModelCSVForm): @@ -941,6 +953,12 @@ class DeviceTypeForm(BootstrapMixin, CustomFieldModelForm): 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role', 'front_image', 'rear_image', 'comments', 'tags', ] + fieldsets = ( + ('Device Type', ( + 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role', + )), + ('Images', ('front_image', 'rear_image')), + ) widgets = { 'subdevice_role': StaticSelect2(), # Exclude SVG images (unsupported by PIL) @@ -4382,6 +4400,9 @@ class PowerPanelForm(BootstrapMixin, CustomFieldModelForm): fields = [ 'region', 'site', 'rack_group', 'name', 'tags', ] + fieldsets = ( + ('Power Panel', ('region', 'site', 'rack_group', 'name')), + ) class PowerPanelCSVForm(CustomFieldModelCSVForm): @@ -4520,6 +4541,11 @@ class PowerFeedForm(BootstrapMixin, CustomFieldModelForm): 'region', 'site', 'power_panel', 'rack', 'name', 'status', 'type', 'supply', 'phase', 'voltage', 'amperage', 'max_utilization', 'comments', 'tags', ] + fieldsets = ( + ('Power Panel', ('region', 'site', 'power_panel')), + ('Power Feed', ('rack', 'name', 'status', 'type')), + ('Characteristics', ('supply', 'voltage', 'amperage', 'phase', 'max_utilization')), + ) widgets = { 'status': StaticSelect2(), 'type': StaticSelect2(), diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index b092be612..7df0ea458 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -178,7 +178,6 @@ class SiteView(generic.ObjectView): class SiteEditView(generic.ObjectEditView): queryset = Site.objects.all() model_form = forms.SiteForm - template_name = 'dcim/site_edit.html' class SiteDeleteView(generic.ObjectDeleteView): @@ -421,7 +420,6 @@ class RackReservationView(generic.ObjectView): class RackReservationEditView(generic.ObjectEditView): queryset = RackReservation.objects.all() model_form = forms.RackReservationForm - template_name = 'dcim/rackreservation_edit.html' def alter_obj(self, obj, request, args, kwargs): if not obj.pk: @@ -577,7 +575,6 @@ class DeviceTypeView(generic.ObjectView): class DeviceTypeEditView(generic.ObjectEditView): queryset = DeviceType.objects.all() model_form = forms.DeviceTypeForm - template_name = 'dcim/devicetype_edit.html' class DeviceTypeDeleteView(generic.ObjectDeleteView): @@ -2591,7 +2588,6 @@ class PowerPanelView(generic.ObjectView): class PowerPanelEditView(generic.ObjectEditView): queryset = PowerPanel.objects.all() model_form = forms.PowerPanelForm - template_name = 'dcim/powerpanel_edit.html' class PowerPanelDeleteView(generic.ObjectDeleteView): @@ -2639,7 +2635,6 @@ class PowerFeedView(generic.ObjectView): class PowerFeedEditView(generic.ObjectEditView): queryset = PowerFeed.objects.all() model_form = forms.PowerFeedForm - template_name = 'dcim/powerfeed_edit.html' class PowerFeedDeleteView(generic.ObjectDeleteView): diff --git a/netbox/extras/forms.py b/netbox/extras/forms.py index 932d07a4d..fbafd893b 100644 --- a/netbox/extras/forms.py +++ b/netbox/extras/forms.py @@ -116,6 +116,9 @@ class TagForm(BootstrapMixin, forms.ModelForm): fields = [ 'name', 'slug', 'color', 'description' ] + fieldsets = ( + ('Tag', ('name', 'slug', 'color', 'description')), + ) class TagCSVForm(CSVModelForm): diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 57483345c..a6315aa51 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -37,7 +37,6 @@ class TagListView(generic.ObjectListView): class TagEditView(generic.ObjectEditView): queryset = Tag.objects.all() model_form = forms.TagForm - template_name = 'extras/tag_edit.html' class TagDeleteView(generic.ObjectDeleteView): diff --git a/netbox/ipam/forms.py b/netbox/ipam/forms.py index e2cb51417..0c8f7de24 100644 --- a/netbox/ipam/forms.py +++ b/netbox/ipam/forms.py @@ -50,6 +50,11 @@ class VRFForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): 'name', 'rd', 'enforce_unique', 'description', 'import_targets', 'export_targets', 'tenant_group', 'tenant', 'tags', ] + fieldsets = ( + ('VRF', ('name', 'rd', 'enforce_unique', 'description')), + ('Route Targets', ('import_targets', 'export_targets')), + ('Tenancy', ('tenant_group', 'tenant')), + ) labels = { 'rd': "RD", } @@ -240,6 +245,10 @@ class AggregateForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): fields = [ 'prefix', 'rir', 'date_added', 'description', 'tenant_group', 'tenant', 'tags', ] + fieldsets = ( + ('Aggregate', ('prefix', 'rir', 'date_added', 'description')), + ('Tenancy', ('tenant_group', 'tenant')), + ) help_texts = { 'prefix': "IPv4 or IPv6 network", 'rir': "Regional Internet Registry responsible for this prefix", @@ -404,6 +413,11 @@ class PrefixForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): 'prefix', 'vrf', 'site', 'vlan', 'status', 'role', 'is_pool', 'description', 'tenant_group', 'tenant', 'tags', ] + fieldsets = ( + ('Prefix', ('prefix', 'status', 'vrf', 'role', 'description', 'is_pool')), + ('Site/VLAN Assignment', ('region', 'site', 'vlan_group', 'vlan')), + ('Tenancy', ('tenant_group', 'tenant')), + ) widgets = { 'status': StaticSelect2(), } @@ -1163,6 +1177,11 @@ class VLANForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): fields = [ 'site', 'group', 'vid', 'name', 'status', 'role', 'description', 'tenant_group', 'tenant', 'tags', ] + fieldsets = ( + ('VLAN', ('vid', 'name', 'status', 'role', 'description')), + ('Assignment', ('region', 'site', 'group')), + ('Tenancy', ('tenant_group', 'tenant')), + ) help_texts = { 'site': "Leave blank if this VLAN spans multiple sites", 'group': "VLAN group (optional)", diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 39a840f7f..bada223e3 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -50,7 +50,6 @@ class VRFView(generic.ObjectView): class VRFEditView(generic.ObjectEditView): queryset = VRF.objects.all() model_form = forms.VRFForm - template_name = 'ipam/vrf_edit.html' class VRFDeleteView(generic.ObjectDeleteView): @@ -245,7 +244,6 @@ class AggregateView(generic.ObjectView): class AggregateEditView(generic.ObjectEditView): queryset = Aggregate.objects.all() model_form = forms.AggregateForm - template_name = 'ipam/aggregate_edit.html' class AggregateDeleteView(generic.ObjectDeleteView): @@ -444,7 +442,6 @@ class PrefixIPAddressesView(generic.ObjectView): class PrefixEditView(generic.ObjectEditView): queryset = Prefix.objects.all() model_form = forms.PrefixForm - template_name = 'ipam/prefix_edit.html' class PrefixDeleteView(generic.ObjectDeleteView): @@ -769,7 +766,6 @@ class VLANVMInterfacesView(generic.ObjectView): class VLANEditView(generic.ObjectEditView): queryset = VLAN.objects.all() model_form = forms.VLANForm - template_name = 'ipam/vlan_edit.html' class VLANDeleteView(generic.ObjectDeleteView): diff --git a/netbox/templates/circuits/circuit_edit.html b/netbox/templates/circuits/circuit_edit.html deleted file mode 100644 index fe0c6847d..000000000 --- a/netbox/templates/circuits/circuit_edit.html +++ /dev/null @@ -1,62 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Circuit
-
- {% render_field form.provider %} - {% render_field form.cid %} - {% render_field form.type %} - {% render_field form.status %} - {% render_field form.install_date %} -
- -
-
- {{ form.commit_rate }} - {% include 'circuits/inc/speed_widget.html' with target_field='commit_rate' %} -
- {{ form.commit_rate.help_text }} -
-
- {% render_field form.description %} -
-
-
-
Tenancy
-
- {% render_field form.tenant_group %} - {% render_field form.tenant %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Tags
-
- {% render_field form.tags %} -
-
-
-
Comments
-
- {% render_field form.comments %} -
-
-{% endblock %} - -{% block javascript %} - -{% endblock %} diff --git a/netbox/templates/circuits/provider_edit.html b/netbox/templates/circuits/provider_edit.html deleted file mode 100644 index ee0a3a285..000000000 --- a/netbox/templates/circuits/provider_edit.html +++ /dev/null @@ -1,42 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Provider
-
- {% render_field form.name %} - {% render_field form.slug %} - {% render_field form.asn %} -
-
-
-
Support Info
-
- {% render_field form.account %} - {% render_field form.portal_url %} - {% render_field form.noc_contact %} - {% render_field form.admin_contact %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Tags
-
- {% render_field form.tags %} -
-
-
-
Comments
-
- {% render_field form.comments %} -
-
-{% endblock %} diff --git a/netbox/templates/dcim/devicetype_edit.html b/netbox/templates/dcim/devicetype_edit.html deleted file mode 100644 index 5aba04b39..000000000 --- a/netbox/templates/dcim/devicetype_edit.html +++ /dev/null @@ -1,44 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Device Type
-
- {% render_field form.manufacturer %} - {% render_field form.model %} - {% render_field form.slug %} - {% render_field form.part_number %} - {% render_field form.u_height %} - {% render_field form.is_full_depth %} - {% render_field form.subdevice_role %} -
-
-
-
Rack Images
-
- {% render_field form.front_image %} - {% render_field form.rear_image %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Tags
-
- {% render_field form.tags %} -
-
-
-
Comments
-
- {% render_field form.comments %} -
-
-{% endblock %} diff --git a/netbox/templates/dcim/powerfeed_edit.html b/netbox/templates/dcim/powerfeed_edit.html deleted file mode 100644 index 0a6581444..000000000 --- a/netbox/templates/dcim/powerfeed_edit.html +++ /dev/null @@ -1,52 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Power Panel
-
- {% render_field form.region %} - {% render_field form.site %} - {% render_field form.power_panel %} -
-
-
-
Power Feed
-
- {% render_field form.rack %} - {% render_field form.name %} - {% render_field form.status %} -
-
-
-
Characteristics
-
- {% render_field form.type %} - {% render_field form.supply %} - {% render_field form.voltage %} - {% render_field form.amperage %} - {% render_field form.phase %} - {% render_field form.max_utilization %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Tags
-
- {% render_field form.tags %} -
-
-
-
Comments
-
- {% render_field form.comments %} -
-
-{% endblock %} diff --git a/netbox/templates/dcim/powerpanel_edit.html b/netbox/templates/dcim/powerpanel_edit.html deleted file mode 100644 index c1890cd47..000000000 --- a/netbox/templates/dcim/powerpanel_edit.html +++ /dev/null @@ -1,23 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Power Panel
-
- {% render_field form.region %} - {% render_field form.site %} - {% render_field form.rack_group %} - {% render_field form.name %} - {% render_field form.tags %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -{% endblock %} diff --git a/netbox/templates/dcim/rackreservation_edit.html b/netbox/templates/dcim/rackreservation_edit.html deleted file mode 100644 index 1465dc02d..000000000 --- a/netbox/templates/dcim/rackreservation_edit.html +++ /dev/null @@ -1,33 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Rack Reservation
-
- {% render_field form.region %} - {% render_field form.site %} - {% render_field form.rack_group %} - {% render_field form.rack %} - {% render_field form.units %} - {% render_field form.user %} - {% render_field form.description %} - {% render_field form.tags %} -
-
-
-
Tenant Assignment
-
- {% render_field form.tenant_group %} - {% render_field form.tenant %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -{% endblock %} diff --git a/netbox/templates/dcim/site_edit.html b/netbox/templates/dcim/site_edit.html deleted file mode 100644 index 274863fc4..000000000 --- a/netbox/templates/dcim/site_edit.html +++ /dev/null @@ -1,57 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Site
-
- {% render_field form.name %} - {% render_field form.slug %} - {% render_field form.status %} - {% render_field form.region %} - {% render_field form.facility %} - {% render_field form.asn %} - {% render_field form.time_zone %} - {% render_field form.description %} -
-
-
-
Tenancy
-
- {% render_field form.tenant_group %} - {% render_field form.tenant %} -
-
-
-
Contact Info
-
- {% render_field form.physical_address %} - {% render_field form.shipping_address %} - {% render_field form.latitude %} - {% render_field form.longitude %} - {% render_field form.contact_name %} - {% render_field form.contact_phone %} - {% render_field form.contact_email %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Tags
-
- {% render_field form.tags %} -
-
-
-
Comments
-
- {% render_field form.comments %} -
-
-{% endblock %} diff --git a/netbox/templates/extras/tag_edit.html b/netbox/templates/extras/tag_edit.html deleted file mode 100644 index 1516bde39..000000000 --- a/netbox/templates/extras/tag_edit.html +++ /dev/null @@ -1,14 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Tag
-
- {% render_field form.name %} - {% render_field form.slug %} - {% render_field form.color %} - {% render_field form.description %} -
-
-{% endblock %} diff --git a/netbox/templates/ipam/aggregate_edit.html b/netbox/templates/ipam/aggregate_edit.html deleted file mode 100644 index f27abd663..000000000 --- a/netbox/templates/ipam/aggregate_edit.html +++ /dev/null @@ -1,35 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Aggregate
-
- {% render_field form.prefix %} - {% render_field form.rir %} - {% render_field form.date_added %} - {% render_field form.description %} -
-
-
-
Tenancy
-
- {% render_field form.tenant_group %} - {% render_field form.tenant %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Tags
-
- {% render_field form.tags %} -
-
-{% endblock %} diff --git a/netbox/templates/ipam/prefix_edit.html b/netbox/templates/ipam/prefix_edit.html deleted file mode 100644 index 3505c373b..000000000 --- a/netbox/templates/ipam/prefix_edit.html +++ /dev/null @@ -1,46 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Prefix
-
- {% render_field form.prefix %} - {% render_field form.status %} - {% render_field form.vrf %} - {% render_field form.role %} - {% render_field form.description %} - {% render_field form.is_pool %} -
-
-
-
Site/VLAN Assignment
-
- {% render_field form.region %} - {% render_field form.site %} - {% render_field form.vlan_group %} - {% render_field form.vlan %} -
-
-
-
Tenancy
-
- {% render_field form.tenant_group %} - {% render_field form.tenant %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Tags
-
- {% render_field form.tags %} -
-
-{% endblock %} diff --git a/netbox/templates/ipam/vlan_edit.html b/netbox/templates/ipam/vlan_edit.html deleted file mode 100644 index 54dcf727a..000000000 --- a/netbox/templates/ipam/vlan_edit.html +++ /dev/null @@ -1,44 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
VLAN
-
- {% render_field form.vid %} - {% render_field form.name %} - {% render_field form.status %} - {% render_field form.role %} - {% render_field form.description %} -
-
-
-
Assignment
-
- {% render_field form.region %} - {% render_field form.site %} - {% render_field form.group %} -
-
-
-
Tenancy
-
- {% render_field form.tenant_group %} - {% render_field form.tenant %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Tags
-
- {% render_field form.tags %} -
-
-{% endblock %} diff --git a/netbox/templates/ipam/vrf_edit.html b/netbox/templates/ipam/vrf_edit.html deleted file mode 100644 index 189b9c129..000000000 --- a/netbox/templates/ipam/vrf_edit.html +++ /dev/null @@ -1,42 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
VRF
-
- {% render_field form.name %} - {% render_field form.rd %} - {% render_field form.enforce_unique %} - {% render_field form.description %} -
-
-
-
Route Targets
-
- {% render_field form.import_targets %} - {% render_field form.export_targets %} -
-
-
-
Tenancy
-
- {% render_field form.tenant_group %} - {% render_field form.tenant %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Tags
-
- {% render_field form.tags %} -
-
-{% endblock %} diff --git a/netbox/templates/tenancy/tenant_edit.html b/netbox/templates/tenancy/tenant_edit.html deleted file mode 100644 index 8a1d1d1b6..000000000 --- a/netbox/templates/tenancy/tenant_edit.html +++ /dev/null @@ -1,35 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load static %} -{% load form_helpers %} - -{% block form %} -
-
Tenant
-
- {% render_field form.name %} - {% render_field form.slug %} - {% render_field form.group %} - {% render_field form.description %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Tags
-
- {% render_field form.tags %} -
-
-
-
Comments
-
- {% render_field form.comments %} -
-
-{% endblock %} diff --git a/netbox/templates/virtualization/cluster_edit.html b/netbox/templates/virtualization/cluster_edit.html deleted file mode 100644 index f43fc717f..000000000 --- a/netbox/templates/virtualization/cluster_edit.html +++ /dev/null @@ -1,42 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Cluster
-
- {% render_field form.name %} - {% render_field form.type %} - {% render_field form.group %} - {% render_field form.region %} - {% render_field form.site %} -
-
-
-
Tenancy
-
- {% render_field form.tenant_group %} - {% render_field form.tenant %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Tags
-
- {% render_field form.tags %} -
-
-
-
Comments
-
- {% render_field form.comments %} -
-
-{% endblock %} diff --git a/netbox/templates/virtualization/virtualmachine_edit.html b/netbox/templates/virtualization/virtualmachine_edit.html deleted file mode 100644 index 6bffabadd..000000000 --- a/netbox/templates/virtualization/virtualmachine_edit.html +++ /dev/null @@ -1,69 +0,0 @@ -{% extends 'generic/object_edit.html' %} -{% load form_helpers %} - -{% block form %} -
-
Virtual Machine
-
- {% render_field form.name %} - {% render_field form.role %} -
-
-
-
Cluster
-
- {% render_field form.cluster_group %} - {% render_field form.cluster %} -
-
-
-
Management
-
- {% render_field form.status %} - {% render_field form.platform %} - {% render_field form.primary_ip4 %} - {% render_field form.primary_ip6 %} -
-
-
-
Resources
-
- {% render_field form.vcpus %} - {% render_field form.memory %} - {% render_field form.disk %} -
-
-
-
Tenancy
-
- {% render_field form.tenant_group %} - {% render_field form.tenant %} -
-
- {% if form.custom_fields %} -
-
Custom Fields
-
- {% render_custom_fields form %} -
-
- {% endif %} -
-
Local Config Context Data
-
- {% render_field form.local_context_data %} -
-
-
-
Tags
-
- {% render_field form.tags %} -
-
-
-
Comments
-
- {% render_field form.comments %} -
-
-{% endblock %} diff --git a/netbox/tenancy/forms.py b/netbox/tenancy/forms.py index bceab7ce7..ee9adefc0 100644 --- a/netbox/tenancy/forms.py +++ b/netbox/tenancy/forms.py @@ -64,6 +64,9 @@ class TenantForm(BootstrapMixin, CustomFieldModelForm): fields = ( 'name', 'slug', 'group', 'description', 'comments', 'tags', ) + fieldsets = ( + ('Tenant', ('name', 'slug', 'group', 'description')), + ) class TenantCSVForm(CustomFieldModelCSVForm): diff --git a/netbox/tenancy/views.py b/netbox/tenancy/views.py index 9fd77d88e..4c72cea42 100644 --- a/netbox/tenancy/views.py +++ b/netbox/tenancy/views.py @@ -87,7 +87,6 @@ class TenantView(generic.ObjectView): class TenantEditView(generic.ObjectEditView): queryset = Tenant.objects.all() model_form = forms.TenantForm - template_name = 'tenancy/tenant_edit.html' class TenantDeleteView(generic.ObjectDeleteView): diff --git a/netbox/virtualization/forms.py b/netbox/virtualization/forms.py index edacb3e07..7e0c45378 100644 --- a/netbox/virtualization/forms.py +++ b/netbox/virtualization/forms.py @@ -104,6 +104,10 @@ class ClusterForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): fields = ( 'name', 'type', 'group', 'tenant', 'region', 'site', 'comments', 'tags', ) + fieldsets = ( + ('Cluster', ('name', 'type', 'group', 'region', 'site')), + ('Tenancy', ('tenant_group', 'tenant')), + ) class ClusterCSVForm(CustomFieldModelCSVForm): @@ -321,6 +325,13 @@ class VirtualMachineForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): 'name', 'status', 'cluster_group', 'cluster', 'role', 'tenant_group', 'tenant', 'platform', 'primary_ip4', 'primary_ip6', 'vcpus', 'memory', 'disk', 'comments', 'tags', 'local_context_data', ] + fieldsets = ( + ('Virtual Machine', ('name', 'role', 'status')), + ('Cluster', ('cluster_group', 'cluster')), + ('Management', ('platform', 'primary_ip4', 'primary_ip6')), + ('Resources', ('vcpus', 'memory', 'disk')), + ('Config Context', ('local_context_data',)), + ) help_texts = { 'local_context_data': "Local config context data overwrites all sources contexts in the final rendered " "config context", diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index dcf9ebcda..e5fe05858 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -114,7 +114,6 @@ class ClusterView(generic.ObjectView): class ClusterEditView(generic.ObjectEditView): - template_name = 'virtualization/cluster_edit.html' queryset = Cluster.objects.all() model_form = forms.ClusterForm @@ -276,7 +275,6 @@ class VirtualMachineConfigContextView(ObjectConfigContextView): class VirtualMachineEditView(generic.ObjectEditView): queryset = VirtualMachine.objects.all() model_form = forms.VirtualMachineForm - template_name = 'virtualization/virtualmachine_edit.html' class VirtualMachineDeleteView(generic.ObjectDeleteView):