mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-15 19:52:52 -06:00
Update object edit template to use fieldsets where possible
This commit is contained in:
parent
2a517cde9f
commit
42e82f0ead
@ -9,8 +9,8 @@ from tenancy.forms import TenancyFilterForm, TenancyForm
|
|||||||
from tenancy.models import Tenant
|
from tenancy.models import Tenant
|
||||||
from utilities.forms import (
|
from utilities.forms import (
|
||||||
add_blank_choice, BootstrapMixin, CommentField, CSVChoiceField, CSVModelChoiceField, CSVModelForm, DatePicker,
|
add_blank_choice, BootstrapMixin, CommentField, CSVChoiceField, CSVModelChoiceField, CSVModelForm, DatePicker,
|
||||||
DynamicModelChoiceField, DynamicModelMultipleChoiceField, SmallTextarea, SlugField, StaticSelect2,
|
DynamicModelChoiceField, DynamicModelMultipleChoiceField, SelectSpeedWidget, SmallTextarea, SlugField,
|
||||||
StaticSelect2Multiple, TagFilterField,
|
StaticSelect2, StaticSelect2Multiple, TagFilterField,
|
||||||
)
|
)
|
||||||
from .choices import CircuitStatusChoices
|
from .choices import CircuitStatusChoices
|
||||||
from .models import Circuit, CircuitTermination, CircuitType, Provider
|
from .models import Circuit, CircuitTermination, CircuitType, Provider
|
||||||
@ -33,6 +33,10 @@ class ProviderForm(BootstrapMixin, CustomFieldModelForm):
|
|||||||
fields = [
|
fields = [
|
||||||
'name', 'slug', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'comments', 'tags',
|
'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 = {
|
widgets = {
|
||||||
'noc_contact': SmallTextarea(
|
'noc_contact': SmallTextarea(
|
||||||
attrs={'rows': 5}
|
attrs={'rows': 5}
|
||||||
@ -127,7 +131,7 @@ class ProviderFilterForm(BootstrapMixin, CustomFieldFilterForm):
|
|||||||
# Circuit types
|
# Circuit types
|
||||||
#
|
#
|
||||||
|
|
||||||
class CircuitTypeForm(BootstrapMixin, forms.ModelForm):
|
class CircuitTypeForm(BootstrapMixin, CustomFieldModelForm):
|
||||||
slug = SlugField()
|
slug = SlugField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@ -171,6 +175,10 @@ class CircuitForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
|
|||||||
'cid', 'type', 'provider', 'status', 'install_date', 'commit_rate', 'description', 'tenant_group', 'tenant',
|
'cid', 'type', 'provider', 'status', 'install_date', 'commit_rate', 'description', 'tenant_group', 'tenant',
|
||||||
'comments', 'tags',
|
'comments', 'tags',
|
||||||
]
|
]
|
||||||
|
fieldsets = (
|
||||||
|
('Circuit', ('provider', 'cid', 'type', 'status', 'install_date', 'commit_rate', 'description')),
|
||||||
|
('Tenancy', ('tenant_group', 'tenant')),
|
||||||
|
)
|
||||||
help_texts = {
|
help_texts = {
|
||||||
'cid': "Unique circuit ID",
|
'cid': "Unique circuit ID",
|
||||||
'commit_rate': "Committed rate",
|
'commit_rate': "Committed rate",
|
||||||
@ -178,6 +186,7 @@ class CircuitForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
|
|||||||
widgets = {
|
widgets = {
|
||||||
'status': StaticSelect2(),
|
'status': StaticSelect2(),
|
||||||
'install_date': DatePicker(),
|
'install_date': DatePicker(),
|
||||||
|
'commit_rate': SelectSpeedWidget(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,7 +52,6 @@ class ProviderView(generic.ObjectView):
|
|||||||
class ProviderEditView(generic.ObjectEditView):
|
class ProviderEditView(generic.ObjectEditView):
|
||||||
queryset = Provider.objects.all()
|
queryset = Provider.objects.all()
|
||||||
model_form = forms.ProviderForm
|
model_form = forms.ProviderForm
|
||||||
template_name = 'circuits/provider_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class ProviderDeleteView(generic.ObjectDeleteView):
|
class ProviderDeleteView(generic.ObjectDeleteView):
|
||||||
@ -160,7 +159,6 @@ class CircuitView(generic.ObjectView):
|
|||||||
class CircuitEditView(generic.ObjectEditView):
|
class CircuitEditView(generic.ObjectEditView):
|
||||||
queryset = Circuit.objects.all()
|
queryset = Circuit.objects.all()
|
||||||
model_form = forms.CircuitForm
|
model_form = forms.CircuitForm
|
||||||
template_name = 'circuits/circuit_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class CircuitDeleteView(generic.ObjectDeleteView):
|
class CircuitDeleteView(generic.ObjectDeleteView):
|
||||||
|
@ -231,6 +231,14 @@ class SiteForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
|
|||||||
'physical_address', 'shipping_address', 'latitude', 'longitude', 'contact_name', 'contact_phone',
|
'physical_address', 'shipping_address', 'latitude', 'longitude', 'contact_name', 'contact_phone',
|
||||||
'contact_email', 'comments', 'tags',
|
'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 = {
|
widgets = {
|
||||||
'physical_address': SmallTextarea(
|
'physical_address': SmallTextarea(
|
||||||
attrs={
|
attrs={
|
||||||
@ -780,8 +788,12 @@ class RackReservationForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = RackReservation
|
model = RackReservation
|
||||||
fields = [
|
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):
|
class RackReservationCSVForm(CustomFieldModelCSVForm):
|
||||||
@ -941,6 +953,12 @@ class DeviceTypeForm(BootstrapMixin, CustomFieldModelForm):
|
|||||||
'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role',
|
'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', 'subdevice_role',
|
||||||
'front_image', 'rear_image', 'comments', 'tags',
|
'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 = {
|
widgets = {
|
||||||
'subdevice_role': StaticSelect2(),
|
'subdevice_role': StaticSelect2(),
|
||||||
# Exclude SVG images (unsupported by PIL)
|
# Exclude SVG images (unsupported by PIL)
|
||||||
@ -4382,6 +4400,9 @@ class PowerPanelForm(BootstrapMixin, CustomFieldModelForm):
|
|||||||
fields = [
|
fields = [
|
||||||
'region', 'site', 'rack_group', 'name', 'tags',
|
'region', 'site', 'rack_group', 'name', 'tags',
|
||||||
]
|
]
|
||||||
|
fieldsets = (
|
||||||
|
('Power Panel', ('region', 'site', 'rack_group', 'name')),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class PowerPanelCSVForm(CustomFieldModelCSVForm):
|
class PowerPanelCSVForm(CustomFieldModelCSVForm):
|
||||||
@ -4520,6 +4541,11 @@ class PowerFeedForm(BootstrapMixin, CustomFieldModelForm):
|
|||||||
'region', 'site', 'power_panel', 'rack', 'name', 'status', 'type', 'supply', 'phase', 'voltage', 'amperage',
|
'region', 'site', 'power_panel', 'rack', 'name', 'status', 'type', 'supply', 'phase', 'voltage', 'amperage',
|
||||||
'max_utilization', 'comments', 'tags',
|
'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 = {
|
widgets = {
|
||||||
'status': StaticSelect2(),
|
'status': StaticSelect2(),
|
||||||
'type': StaticSelect2(),
|
'type': StaticSelect2(),
|
||||||
|
@ -178,7 +178,6 @@ class SiteView(generic.ObjectView):
|
|||||||
class SiteEditView(generic.ObjectEditView):
|
class SiteEditView(generic.ObjectEditView):
|
||||||
queryset = Site.objects.all()
|
queryset = Site.objects.all()
|
||||||
model_form = forms.SiteForm
|
model_form = forms.SiteForm
|
||||||
template_name = 'dcim/site_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class SiteDeleteView(generic.ObjectDeleteView):
|
class SiteDeleteView(generic.ObjectDeleteView):
|
||||||
@ -421,7 +420,6 @@ class RackReservationView(generic.ObjectView):
|
|||||||
class RackReservationEditView(generic.ObjectEditView):
|
class RackReservationEditView(generic.ObjectEditView):
|
||||||
queryset = RackReservation.objects.all()
|
queryset = RackReservation.objects.all()
|
||||||
model_form = forms.RackReservationForm
|
model_form = forms.RackReservationForm
|
||||||
template_name = 'dcim/rackreservation_edit.html'
|
|
||||||
|
|
||||||
def alter_obj(self, obj, request, args, kwargs):
|
def alter_obj(self, obj, request, args, kwargs):
|
||||||
if not obj.pk:
|
if not obj.pk:
|
||||||
@ -577,7 +575,6 @@ class DeviceTypeView(generic.ObjectView):
|
|||||||
class DeviceTypeEditView(generic.ObjectEditView):
|
class DeviceTypeEditView(generic.ObjectEditView):
|
||||||
queryset = DeviceType.objects.all()
|
queryset = DeviceType.objects.all()
|
||||||
model_form = forms.DeviceTypeForm
|
model_form = forms.DeviceTypeForm
|
||||||
template_name = 'dcim/devicetype_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class DeviceTypeDeleteView(generic.ObjectDeleteView):
|
class DeviceTypeDeleteView(generic.ObjectDeleteView):
|
||||||
@ -2591,7 +2588,6 @@ class PowerPanelView(generic.ObjectView):
|
|||||||
class PowerPanelEditView(generic.ObjectEditView):
|
class PowerPanelEditView(generic.ObjectEditView):
|
||||||
queryset = PowerPanel.objects.all()
|
queryset = PowerPanel.objects.all()
|
||||||
model_form = forms.PowerPanelForm
|
model_form = forms.PowerPanelForm
|
||||||
template_name = 'dcim/powerpanel_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class PowerPanelDeleteView(generic.ObjectDeleteView):
|
class PowerPanelDeleteView(generic.ObjectDeleteView):
|
||||||
@ -2639,7 +2635,6 @@ class PowerFeedView(generic.ObjectView):
|
|||||||
class PowerFeedEditView(generic.ObjectEditView):
|
class PowerFeedEditView(generic.ObjectEditView):
|
||||||
queryset = PowerFeed.objects.all()
|
queryset = PowerFeed.objects.all()
|
||||||
model_form = forms.PowerFeedForm
|
model_form = forms.PowerFeedForm
|
||||||
template_name = 'dcim/powerfeed_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class PowerFeedDeleteView(generic.ObjectDeleteView):
|
class PowerFeedDeleteView(generic.ObjectDeleteView):
|
||||||
|
@ -116,6 +116,9 @@ class TagForm(BootstrapMixin, forms.ModelForm):
|
|||||||
fields = [
|
fields = [
|
||||||
'name', 'slug', 'color', 'description'
|
'name', 'slug', 'color', 'description'
|
||||||
]
|
]
|
||||||
|
fieldsets = (
|
||||||
|
('Tag', ('name', 'slug', 'color', 'description')),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TagCSVForm(CSVModelForm):
|
class TagCSVForm(CSVModelForm):
|
||||||
|
@ -37,7 +37,6 @@ class TagListView(generic.ObjectListView):
|
|||||||
class TagEditView(generic.ObjectEditView):
|
class TagEditView(generic.ObjectEditView):
|
||||||
queryset = Tag.objects.all()
|
queryset = Tag.objects.all()
|
||||||
model_form = forms.TagForm
|
model_form = forms.TagForm
|
||||||
template_name = 'extras/tag_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class TagDeleteView(generic.ObjectDeleteView):
|
class TagDeleteView(generic.ObjectDeleteView):
|
||||||
|
@ -50,6 +50,11 @@ class VRFForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
|
|||||||
'name', 'rd', 'enforce_unique', 'description', 'import_targets', 'export_targets', 'tenant_group', 'tenant',
|
'name', 'rd', 'enforce_unique', 'description', 'import_targets', 'export_targets', 'tenant_group', 'tenant',
|
||||||
'tags',
|
'tags',
|
||||||
]
|
]
|
||||||
|
fieldsets = (
|
||||||
|
('VRF', ('name', 'rd', 'enforce_unique', 'description')),
|
||||||
|
('Route Targets', ('import_targets', 'export_targets')),
|
||||||
|
('Tenancy', ('tenant_group', 'tenant')),
|
||||||
|
)
|
||||||
labels = {
|
labels = {
|
||||||
'rd': "RD",
|
'rd': "RD",
|
||||||
}
|
}
|
||||||
@ -240,6 +245,10 @@ class AggregateForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
|
|||||||
fields = [
|
fields = [
|
||||||
'prefix', 'rir', 'date_added', 'description', 'tenant_group', 'tenant', 'tags',
|
'prefix', 'rir', 'date_added', 'description', 'tenant_group', 'tenant', 'tags',
|
||||||
]
|
]
|
||||||
|
fieldsets = (
|
||||||
|
('Aggregate', ('prefix', 'rir', 'date_added', 'description')),
|
||||||
|
('Tenancy', ('tenant_group', 'tenant')),
|
||||||
|
)
|
||||||
help_texts = {
|
help_texts = {
|
||||||
'prefix': "IPv4 or IPv6 network",
|
'prefix': "IPv4 or IPv6 network",
|
||||||
'rir': "Regional Internet Registry responsible for this prefix",
|
'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',
|
'prefix', 'vrf', 'site', 'vlan', 'status', 'role', 'is_pool', 'description', 'tenant_group', 'tenant',
|
||||||
'tags',
|
'tags',
|
||||||
]
|
]
|
||||||
|
fieldsets = (
|
||||||
|
('Prefix', ('prefix', 'status', 'vrf', 'role', 'description', 'is_pool')),
|
||||||
|
('Site/VLAN Assignment', ('region', 'site', 'vlan_group', 'vlan')),
|
||||||
|
('Tenancy', ('tenant_group', 'tenant')),
|
||||||
|
)
|
||||||
widgets = {
|
widgets = {
|
||||||
'status': StaticSelect2(),
|
'status': StaticSelect2(),
|
||||||
}
|
}
|
||||||
@ -1163,6 +1177,11 @@ class VLANForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
|
|||||||
fields = [
|
fields = [
|
||||||
'site', 'group', 'vid', 'name', 'status', 'role', 'description', 'tenant_group', 'tenant', 'tags',
|
'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 = {
|
help_texts = {
|
||||||
'site': "Leave blank if this VLAN spans multiple sites",
|
'site': "Leave blank if this VLAN spans multiple sites",
|
||||||
'group': "VLAN group (optional)",
|
'group': "VLAN group (optional)",
|
||||||
|
@ -50,7 +50,6 @@ class VRFView(generic.ObjectView):
|
|||||||
class VRFEditView(generic.ObjectEditView):
|
class VRFEditView(generic.ObjectEditView):
|
||||||
queryset = VRF.objects.all()
|
queryset = VRF.objects.all()
|
||||||
model_form = forms.VRFForm
|
model_form = forms.VRFForm
|
||||||
template_name = 'ipam/vrf_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class VRFDeleteView(generic.ObjectDeleteView):
|
class VRFDeleteView(generic.ObjectDeleteView):
|
||||||
@ -245,7 +244,6 @@ class AggregateView(generic.ObjectView):
|
|||||||
class AggregateEditView(generic.ObjectEditView):
|
class AggregateEditView(generic.ObjectEditView):
|
||||||
queryset = Aggregate.objects.all()
|
queryset = Aggregate.objects.all()
|
||||||
model_form = forms.AggregateForm
|
model_form = forms.AggregateForm
|
||||||
template_name = 'ipam/aggregate_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class AggregateDeleteView(generic.ObjectDeleteView):
|
class AggregateDeleteView(generic.ObjectDeleteView):
|
||||||
@ -444,7 +442,6 @@ class PrefixIPAddressesView(generic.ObjectView):
|
|||||||
class PrefixEditView(generic.ObjectEditView):
|
class PrefixEditView(generic.ObjectEditView):
|
||||||
queryset = Prefix.objects.all()
|
queryset = Prefix.objects.all()
|
||||||
model_form = forms.PrefixForm
|
model_form = forms.PrefixForm
|
||||||
template_name = 'ipam/prefix_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class PrefixDeleteView(generic.ObjectDeleteView):
|
class PrefixDeleteView(generic.ObjectDeleteView):
|
||||||
@ -769,7 +766,6 @@ class VLANVMInterfacesView(generic.ObjectView):
|
|||||||
class VLANEditView(generic.ObjectEditView):
|
class VLANEditView(generic.ObjectEditView):
|
||||||
queryset = VLAN.objects.all()
|
queryset = VLAN.objects.all()
|
||||||
model_form = forms.VLANForm
|
model_form = forms.VLANForm
|
||||||
template_name = 'ipam/vlan_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class VLANDeleteView(generic.ObjectDeleteView):
|
class VLANDeleteView(generic.ObjectDeleteView):
|
||||||
|
@ -1,62 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Circuit</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.provider %}
|
|
||||||
{% render_field form.cid %}
|
|
||||||
{% render_field form.type %}
|
|
||||||
{% render_field form.status %}
|
|
||||||
{% render_field form.install_date %}
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-md-3 control-label" for="id_commit_rate">{{ form.commit_rate.label }}</label>
|
|
||||||
<div class="col-md-9">
|
|
||||||
<div class="input-group">
|
|
||||||
{{ form.commit_rate }}
|
|
||||||
{% include 'circuits/inc/speed_widget.html' with target_field='commit_rate' %}
|
|
||||||
</div>
|
|
||||||
<span class="help-block">{{ form.commit_rate.help_text }}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% render_field form.description %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tenancy</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tenant_group %}
|
|
||||||
{% render_field form.tenant %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Comments</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.comments %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block javascript %}
|
|
||||||
<script type="text/javascript">
|
|
||||||
$("a.set_speed").click(function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
$("#id_" + $(this).attr("target")).val($(this).attr("data"));
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
{% endblock %}
|
|
@ -1,42 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Provider</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.name %}
|
|
||||||
{% render_field form.slug %}
|
|
||||||
{% render_field form.asn %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Support Info</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.account %}
|
|
||||||
{% render_field form.portal_url %}
|
|
||||||
{% render_field form.noc_contact %}
|
|
||||||
{% render_field form.admin_contact %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Comments</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.comments %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,44 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Device Type</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% 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 %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Rack Images</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.front_image %}
|
|
||||||
{% render_field form.rear_image %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Comments</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.comments %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,52 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Power Panel</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.region %}
|
|
||||||
{% render_field form.site %}
|
|
||||||
{% render_field form.power_panel %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Power Feed</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.rack %}
|
|
||||||
{% render_field form.name %}
|
|
||||||
{% render_field form.status %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Characteristics</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% 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 %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Comments</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.comments %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,23 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Power Panel</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.region %}
|
|
||||||
{% render_field form.site %}
|
|
||||||
{% render_field form.rack_group %}
|
|
||||||
{% render_field form.name %}
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
|
@ -1,33 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Rack Reservation</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% 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 %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tenant Assignment</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tenant_group %}
|
|
||||||
{% render_field form.tenant %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
|
@ -1,57 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Site</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% 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 %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tenancy</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tenant_group %}
|
|
||||||
{% render_field form.tenant %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Contact Info</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% 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 %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Comments</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.comments %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,14 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tag</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.name %}
|
|
||||||
{% render_field form.slug %}
|
|
||||||
{% render_field form.color %}
|
|
||||||
{% render_field form.description %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,35 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Aggregate</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.prefix %}
|
|
||||||
{% render_field form.rir %}
|
|
||||||
{% render_field form.date_added %}
|
|
||||||
{% render_field form.description %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tenancy</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tenant_group %}
|
|
||||||
{% render_field form.tenant %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,46 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Prefix</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% 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 %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Site/VLAN Assignment</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.region %}
|
|
||||||
{% render_field form.site %}
|
|
||||||
{% render_field form.vlan_group %}
|
|
||||||
{% render_field form.vlan %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tenancy</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tenant_group %}
|
|
||||||
{% render_field form.tenant %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,44 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>VLAN</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.vid %}
|
|
||||||
{% render_field form.name %}
|
|
||||||
{% render_field form.status %}
|
|
||||||
{% render_field form.role %}
|
|
||||||
{% render_field form.description %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Assignment</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.region %}
|
|
||||||
{% render_field form.site %}
|
|
||||||
{% render_field form.group %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tenancy</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tenant_group %}
|
|
||||||
{% render_field form.tenant %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,42 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>VRF</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.name %}
|
|
||||||
{% render_field form.rd %}
|
|
||||||
{% render_field form.enforce_unique %}
|
|
||||||
{% render_field form.description %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Route Targets</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.import_targets %}
|
|
||||||
{% render_field form.export_targets %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tenancy</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tenant_group %}
|
|
||||||
{% render_field form.tenant %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,35 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load static %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tenant</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.name %}
|
|
||||||
{% render_field form.slug %}
|
|
||||||
{% render_field form.group %}
|
|
||||||
{% render_field form.description %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Comments</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.comments %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,42 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Cluster</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.name %}
|
|
||||||
{% render_field form.type %}
|
|
||||||
{% render_field form.group %}
|
|
||||||
{% render_field form.region %}
|
|
||||||
{% render_field form.site %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tenancy</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tenant_group %}
|
|
||||||
{% render_field form.tenant %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Comments</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.comments %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -1,69 +0,0 @@
|
|||||||
{% extends 'generic/object_edit.html' %}
|
|
||||||
{% load form_helpers %}
|
|
||||||
|
|
||||||
{% block form %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Virtual Machine</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.name %}
|
|
||||||
{% render_field form.role %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Cluster</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.cluster_group %}
|
|
||||||
{% render_field form.cluster %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Management</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.status %}
|
|
||||||
{% render_field form.platform %}
|
|
||||||
{% render_field form.primary_ip4 %}
|
|
||||||
{% render_field form.primary_ip6 %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Resources</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.vcpus %}
|
|
||||||
{% render_field form.memory %}
|
|
||||||
{% render_field form.disk %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tenancy</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tenant_group %}
|
|
||||||
{% render_field form.tenant %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if form.custom_fields %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Custom Fields</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_custom_fields form %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Local Config Context Data</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.local_context_data %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Tags</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.tags %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Comments</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% render_field form.comments %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
@ -64,6 +64,9 @@ class TenantForm(BootstrapMixin, CustomFieldModelForm):
|
|||||||
fields = (
|
fields = (
|
||||||
'name', 'slug', 'group', 'description', 'comments', 'tags',
|
'name', 'slug', 'group', 'description', 'comments', 'tags',
|
||||||
)
|
)
|
||||||
|
fieldsets = (
|
||||||
|
('Tenant', ('name', 'slug', 'group', 'description')),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TenantCSVForm(CustomFieldModelCSVForm):
|
class TenantCSVForm(CustomFieldModelCSVForm):
|
||||||
|
@ -87,7 +87,6 @@ class TenantView(generic.ObjectView):
|
|||||||
class TenantEditView(generic.ObjectEditView):
|
class TenantEditView(generic.ObjectEditView):
|
||||||
queryset = Tenant.objects.all()
|
queryset = Tenant.objects.all()
|
||||||
model_form = forms.TenantForm
|
model_form = forms.TenantForm
|
||||||
template_name = 'tenancy/tenant_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class TenantDeleteView(generic.ObjectDeleteView):
|
class TenantDeleteView(generic.ObjectDeleteView):
|
||||||
|
@ -104,6 +104,10 @@ class ClusterForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
|
|||||||
fields = (
|
fields = (
|
||||||
'name', 'type', 'group', 'tenant', 'region', 'site', 'comments', 'tags',
|
'name', 'type', 'group', 'tenant', 'region', 'site', 'comments', 'tags',
|
||||||
)
|
)
|
||||||
|
fieldsets = (
|
||||||
|
('Cluster', ('name', 'type', 'group', 'region', 'site')),
|
||||||
|
('Tenancy', ('tenant_group', 'tenant')),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class ClusterCSVForm(CustomFieldModelCSVForm):
|
class ClusterCSVForm(CustomFieldModelCSVForm):
|
||||||
@ -321,6 +325,13 @@ class VirtualMachineForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
|
|||||||
'name', 'status', 'cluster_group', 'cluster', 'role', 'tenant_group', 'tenant', 'platform', 'primary_ip4',
|
'name', 'status', 'cluster_group', 'cluster', 'role', 'tenant_group', 'tenant', 'platform', 'primary_ip4',
|
||||||
'primary_ip6', 'vcpus', 'memory', 'disk', 'comments', 'tags', 'local_context_data',
|
'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 = {
|
help_texts = {
|
||||||
'local_context_data': "Local config context data overwrites all sources contexts in the final rendered "
|
'local_context_data': "Local config context data overwrites all sources contexts in the final rendered "
|
||||||
"config context",
|
"config context",
|
||||||
|
@ -114,7 +114,6 @@ class ClusterView(generic.ObjectView):
|
|||||||
|
|
||||||
|
|
||||||
class ClusterEditView(generic.ObjectEditView):
|
class ClusterEditView(generic.ObjectEditView):
|
||||||
template_name = 'virtualization/cluster_edit.html'
|
|
||||||
queryset = Cluster.objects.all()
|
queryset = Cluster.objects.all()
|
||||||
model_form = forms.ClusterForm
|
model_form = forms.ClusterForm
|
||||||
|
|
||||||
@ -276,7 +275,6 @@ class VirtualMachineConfigContextView(ObjectConfigContextView):
|
|||||||
class VirtualMachineEditView(generic.ObjectEditView):
|
class VirtualMachineEditView(generic.ObjectEditView):
|
||||||
queryset = VirtualMachine.objects.all()
|
queryset = VirtualMachine.objects.all()
|
||||||
model_form = forms.VirtualMachineForm
|
model_form = forms.VirtualMachineForm
|
||||||
template_name = 'virtualization/virtualmachine_edit.html'
|
|
||||||
|
|
||||||
|
|
||||||
class VirtualMachineDeleteView(generic.ObjectDeleteView):
|
class VirtualMachineDeleteView(generic.ObjectDeleteView):
|
||||||
|
Loading…
Reference in New Issue
Block a user