mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Converted IPAM Prefix, IPAddress, VLAN add/edit/delete views to CBVs
This commit is contained in:
@ -22,30 +22,30 @@ urlpatterns = [
|
|||||||
url(r'^aggregates/(?P<pk>\d+)/delete/$', views.AggregateDeleteView.as_view(), name='aggregate_delete'),
|
url(r'^aggregates/(?P<pk>\d+)/delete/$', views.AggregateDeleteView.as_view(), name='aggregate_delete'),
|
||||||
|
|
||||||
url(r'^prefixes/$', views.PrefixListView.as_view(), name='prefix_list'),
|
url(r'^prefixes/$', views.PrefixListView.as_view(), name='prefix_list'),
|
||||||
url(r'^prefixes/add/$', views.prefix_add, name='prefix_add'),
|
url(r'^prefixes/add/$', views.PrefixAddView.as_view(), name='prefix_add'),
|
||||||
url(r'^prefixes/import/$', views.PrefixBulkImportView.as_view(), name='prefix_import'),
|
url(r'^prefixes/import/$', views.PrefixBulkImportView.as_view(), name='prefix_import'),
|
||||||
url(r'^prefixes/edit/$', views.PrefixBulkEditView.as_view(), name='prefix_bulk_edit'),
|
url(r'^prefixes/edit/$', views.PrefixBulkEditView.as_view(), name='prefix_bulk_edit'),
|
||||||
url(r'^prefixes/delete/$', views.PrefixBulkDeleteView.as_view(), name='prefix_bulk_delete'),
|
url(r'^prefixes/delete/$', views.PrefixBulkDeleteView.as_view(), name='prefix_bulk_delete'),
|
||||||
url(r'^prefixes/(?P<pk>\d+)/$', views.prefix, name='prefix'),
|
url(r'^prefixes/(?P<pk>\d+)/$', views.prefix, name='prefix'),
|
||||||
url(r'^prefixes/(?P<pk>\d+)/edit/$', views.prefix_edit, name='prefix_edit'),
|
url(r'^prefixes/(?P<pk>\d+)/edit/$', views.PrefixEditView.as_view(), name='prefix_edit'),
|
||||||
url(r'^prefixes/(?P<pk>\d+)/delete/$', views.prefix_delete, name='prefix_delete'),
|
url(r'^prefixes/(?P<pk>\d+)/delete/$', views.PrefixDeleteView.as_view(), name='prefix_delete'),
|
||||||
url(r'^prefixes/(?P<pk>\d+)/ip-addresses/$', views.prefix_ipaddresses, name='prefix_ipaddresses'),
|
url(r'^prefixes/(?P<pk>\d+)/ip-addresses/$', views.prefix_ipaddresses, name='prefix_ipaddresses'),
|
||||||
|
|
||||||
url(r'^ip-addresses/$', views.IPAddressListView.as_view(), name='ipaddress_list'),
|
url(r'^ip-addresses/$', views.IPAddressListView.as_view(), name='ipaddress_list'),
|
||||||
url(r'^ip-addresses/add/$', views.ipaddress_add, name='ipaddress_add'),
|
url(r'^ip-addresses/add/$', views.IPAddressAddView.as_view(), name='ipaddress_add'),
|
||||||
url(r'^ip-addresses/import/$', views.IPAddressBulkImportView.as_view(), name='ipaddress_import'),
|
url(r'^ip-addresses/import/$', views.IPAddressBulkImportView.as_view(), name='ipaddress_import'),
|
||||||
url(r'^ip-addresses/edit/$', views.IPAddressBulkEditView.as_view(), name='ipaddress_bulk_edit'),
|
url(r'^ip-addresses/edit/$', views.IPAddressBulkEditView.as_view(), name='ipaddress_bulk_edit'),
|
||||||
url(r'^ip-addresses/delete/$', views.IPAddressBulkDeleteView.as_view(), name='ipaddress_bulk_delete'),
|
url(r'^ip-addresses/delete/$', views.IPAddressBulkDeleteView.as_view(), name='ipaddress_bulk_delete'),
|
||||||
url(r'^ip-addresses/(?P<pk>\d+)/$', views.ipaddress, name='ipaddress'),
|
url(r'^ip-addresses/(?P<pk>\d+)/$', views.ipaddress, name='ipaddress'),
|
||||||
url(r'^ip-addresses/(?P<pk>\d+)/edit/$', views.ipaddress_edit, name='ipaddress_edit'),
|
url(r'^ip-addresses/(?P<pk>\d+)/edit/$', views.IPAddressEditView.as_view(), name='ipaddress_edit'),
|
||||||
url(r'^ip-addresses/(?P<pk>\d+)/delete/$', views.ipaddress_delete, name='ipaddress_delete'),
|
url(r'^ip-addresses/(?P<pk>\d+)/delete/$', views.IPAddressDeleteView.as_view(), name='ipaddress_delete'),
|
||||||
|
|
||||||
url(r'^vlans/$', views.VLANListView.as_view(), name='vlan_list'),
|
url(r'^vlans/$', views.VLANListView.as_view(), name='vlan_list'),
|
||||||
url(r'^vlans/add/$', views.vlan_add, name='vlan_add'),
|
url(r'^vlans/add/$', views.VLANAddView.as_view(), name='vlan_add'),
|
||||||
url(r'^vlans/import/$', views.VLANBulkImportView.as_view(), name='vlan_import'),
|
url(r'^vlans/import/$', views.VLANBulkImportView.as_view(), name='vlan_import'),
|
||||||
url(r'^vlans/edit/$', views.VLANBulkEditView.as_view(), name='vlan_bulk_edit'),
|
url(r'^vlans/edit/$', views.VLANBulkEditView.as_view(), name='vlan_bulk_edit'),
|
||||||
url(r'^vlans/delete/$', views.VLANBulkDeleteView.as_view(), name='vlan_bulk_delete'),
|
url(r'^vlans/delete/$', views.VLANBulkDeleteView.as_view(), name='vlan_bulk_delete'),
|
||||||
url(r'^vlans/(?P<pk>\d+)/$', views.vlan, name='vlan'),
|
url(r'^vlans/(?P<pk>\d+)/$', views.vlan, name='vlan'),
|
||||||
url(r'^vlans/(?P<pk>\d+)/edit/$', views.vlan_edit, name='vlan_edit'),
|
url(r'^vlans/(?P<pk>\d+)/edit/$', views.VLANEditView.as_view(), name='vlan_edit'),
|
||||||
url(r'^vlans/(?P<pk>\d+)/delete/$', views.vlan_delete, name='vlan_delete'),
|
url(r'^vlans/(?P<pk>\d+)/delete/$', views.VLANDeleteView.as_view(), name='vlan_delete'),
|
||||||
]
|
]
|
||||||
|
@ -283,78 +283,27 @@ def prefix(request, pk):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('ipam.add_prefix')
|
class PrefixAddView(PermissionRequiredMixin, ObjectAddView):
|
||||||
def prefix_add(request):
|
permission_required = 'ipam.add_prefix'
|
||||||
|
model = Prefix
|
||||||
if request.method == 'POST':
|
form_class = PrefixForm
|
||||||
form = PrefixForm(request.POST)
|
template_name = 'ipam/prefix_edit.html'
|
||||||
if form.is_valid():
|
cancel_url = 'ipam:prefix_list'
|
||||||
prefix = form.save()
|
fields_initial = ['site', 'vrf', 'prefix']
|
||||||
messages.success(request, "Added new prefix: {0}".format(prefix.prefix))
|
|
||||||
if '_addanother' in request.POST:
|
|
||||||
return redirect('ipam:prefix_add')
|
|
||||||
else:
|
|
||||||
return redirect('ipam:prefix', pk=prefix.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = PrefixForm(initial={
|
|
||||||
'site': request.GET.get('site'),
|
|
||||||
'vrf': request.GET.get('vrf'),
|
|
||||||
'prefix': request.GET.get('prefix'),
|
|
||||||
})
|
|
||||||
|
|
||||||
return render(request, 'ipam/prefix_edit.html', {
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('ipam:prefix_list'),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('ipam.change_prefix')
|
class PrefixEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def prefix_edit(request, pk):
|
permission_required = 'ipam.change_prefix'
|
||||||
|
model = Prefix
|
||||||
prefix = get_object_or_404(Prefix, pk=pk)
|
form_class = PrefixForm
|
||||||
|
template_name = 'ipam/prefix_edit.html'
|
||||||
if request.method == 'POST':
|
|
||||||
form = PrefixForm(request.POST, instance=prefix)
|
|
||||||
if form.is_valid():
|
|
||||||
prefix = form.save()
|
|
||||||
messages.success(request, "Modified prefix {0}".format(prefix.prefix))
|
|
||||||
return redirect('ipam:prefix', pk=prefix.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = PrefixForm(instance=prefix)
|
|
||||||
|
|
||||||
return render(request, 'ipam/prefix_edit.html', {
|
|
||||||
'prefix': prefix,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('ipam:prefix', kwargs={'pk': prefix.pk}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('ipam.delete_prefix')
|
class PrefixDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
def prefix_delete(request, pk):
|
permission_required = 'ipam.delete_prefix'
|
||||||
|
model = Prefix
|
||||||
prefix = get_object_or_404(Prefix, pk=pk)
|
template_name = 'ipam/prefix_delete.html'
|
||||||
|
redirect_url = 'ipam:prefix_list'
|
||||||
if request.method == 'POST':
|
|
||||||
form = ConfirmationForm(request.POST)
|
|
||||||
if form.is_valid():
|
|
||||||
try:
|
|
||||||
prefix.delete()
|
|
||||||
messages.success(request, "Prefix {0} has been deleted".format(prefix))
|
|
||||||
return redirect('ipam:prefix_list')
|
|
||||||
except ProtectedError, e:
|
|
||||||
handle_protectederror(prefix, request, e)
|
|
||||||
return redirect('ipam:prefix', pk=prefix.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = ConfirmationForm()
|
|
||||||
|
|
||||||
return render(request, 'ipam/prefix_delete.html', {
|
|
||||||
'prefix': prefix,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('ipam:prefix', kwargs={'pk': prefix.pk})
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
class PrefixBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class PrefixBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
@ -447,85 +396,27 @@ def ipaddress(request, pk):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('ipam.add_ipaddress')
|
class IPAddressAddView(PermissionRequiredMixin, ObjectAddView):
|
||||||
def ipaddress_add(request):
|
permission_required = 'ipam.add_ipaddress'
|
||||||
|
model = IPAddress
|
||||||
if request.method == 'POST':
|
form_class = IPAddressForm
|
||||||
form = IPAddressForm(request.POST)
|
template_name = 'ipam/ipaddress_edit.html'
|
||||||
if form.is_valid():
|
cancel_url = 'ipam:ipaddress_list'
|
||||||
ipaddress = form.save()
|
fields_initial = ['ipaddress']
|
||||||
messages.success(request, "Created new IP Address: {0}".format(ipaddress))
|
|
||||||
if '_addanother' in request.POST:
|
|
||||||
return redirect('ipam:ipaddress_add')
|
|
||||||
else:
|
|
||||||
return redirect('ipam:ipaddress', pk=ipaddress.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = IPAddressForm(initial={
|
|
||||||
'ipaddress': request.GET.get('ipaddress', None),
|
|
||||||
})
|
|
||||||
|
|
||||||
return render(request, 'ipam/ipaddress_edit.html', {
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('ipam:ipaddress_list'),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('ipam.change_ipaddress')
|
class IPAddressEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def ipaddress_edit(request, pk):
|
permission_required = 'ipam.change_ipaddress'
|
||||||
|
model = IPAddress
|
||||||
ipaddress = get_object_or_404(IPAddress, pk=pk)
|
form_class = IPAddressForm
|
||||||
|
template_name = 'ipam/ipaddress_edit.html'
|
||||||
if request.method == 'POST':
|
|
||||||
form = IPAddressForm(request.POST, instance=ipaddress)
|
|
||||||
if form.is_valid():
|
|
||||||
ipaddress = form.save()
|
|
||||||
messages.success(request, "Modified IP address {0}".format(ipaddress))
|
|
||||||
return redirect('ipam:ipaddress', pk=ipaddress.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = IPAddressForm(instance=ipaddress)
|
|
||||||
|
|
||||||
return render(request, 'ipam/ipaddress_edit.html', {
|
|
||||||
'ipaddress': ipaddress,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('ipam:ipaddress', kwargs={'pk': ipaddress.pk}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('ipam.delete_ipaddress')
|
class IPAddressDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
def ipaddress_delete(request, pk):
|
permission_required = 'ipam.delete_ipaddress'
|
||||||
|
model = IPAddress
|
||||||
ipaddress = get_object_or_404(IPAddress, pk=pk)
|
template_name = 'ipam/ipaddress_delete.html'
|
||||||
|
redirect_url = 'ipam:ipaddress_list'
|
||||||
if request.method == 'POST':
|
|
||||||
form = ConfirmationForm(request.POST)
|
|
||||||
if form.is_valid():
|
|
||||||
try:
|
|
||||||
ipaddress.delete()
|
|
||||||
messages.success(request, "IP address {0} has been deleted".format(ipaddress))
|
|
||||||
if ipaddress.interface:
|
|
||||||
return redirect('dcim:device', pk=ipaddress.interface.device.pk)
|
|
||||||
else:
|
|
||||||
return redirect('ipam:ipaddress_list')
|
|
||||||
except ProtectedError, e:
|
|
||||||
handle_protectederror(ipaddress, request, e)
|
|
||||||
return redirect('ipam:ipaddress', pk=ipaddress.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = ConfirmationForm()
|
|
||||||
|
|
||||||
# Upon cancellation, redirect to the assigned device if one exists
|
|
||||||
if ipaddress.interface:
|
|
||||||
cancel_url = reverse('dcim:device', kwargs={'pk': ipaddress.interface.device.pk})
|
|
||||||
else:
|
|
||||||
cancel_url = reverse('ipam:ipaddress_list')
|
|
||||||
|
|
||||||
return render(request, 'ipam/ipaddress_delete.html', {
|
|
||||||
'ipaddress': ipaddress,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': cancel_url,
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
class IPAddressBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class IPAddressBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
@ -601,78 +492,26 @@ def vlan(request, pk):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('ipam.add_vlan')
|
class VLANAddView(PermissionRequiredMixin, ObjectAddView):
|
||||||
def vlan_add(request):
|
permission_required = 'ipam.add_vlan'
|
||||||
|
model = VLAN
|
||||||
if request.method == 'POST':
|
form_class = VLANForm
|
||||||
form = VLANForm(request.POST)
|
template_name = 'ipam/vlan_edit.html'
|
||||||
if form.is_valid():
|
cancel_url = 'ipam:vlan_list'
|
||||||
vlan = form.save()
|
|
||||||
messages.success(request, "Added new VLAN: {0}".format(vlan))
|
|
||||||
if '_addanother' in request.POST:
|
|
||||||
base_url = reverse('ipam:vlan_add')
|
|
||||||
params = urlencode({
|
|
||||||
'site': vlan.site.pk,
|
|
||||||
})
|
|
||||||
return HttpResponseRedirect('{}?{}'.format(base_url, params))
|
|
||||||
else:
|
|
||||||
return redirect('ipam:vlan', pk=vlan.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = VLANForm()
|
|
||||||
|
|
||||||
return render(request, 'ipam/vlan_edit.html', {
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('ipam:vlan_list'),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('ipam.change_vlan')
|
class VLANEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def vlan_edit(request, pk):
|
permission_required = 'ipam.change_vlan'
|
||||||
|
model = VLAN
|
||||||
vlan = get_object_or_404(VLAN, pk=pk)
|
form_class = VLANForm
|
||||||
|
template_name = 'ipam/vlan_edit.html'
|
||||||
if request.method == 'POST':
|
|
||||||
form = VLANForm(request.POST, instance=vlan)
|
|
||||||
if form.is_valid():
|
|
||||||
vlan = form.save()
|
|
||||||
messages.success(request, "Modified VLAN {0}".format(vlan))
|
|
||||||
return redirect('ipam:vlan', pk=vlan.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = VLANForm(instance=vlan)
|
|
||||||
|
|
||||||
return render(request, 'ipam/vlan_edit.html', {
|
|
||||||
'vlan': vlan,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('ipam:vlan', kwargs={'pk': vlan.pk}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('ipam.delete_vlan')
|
class VLANDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
def vlan_delete(request, pk):
|
permission_required = 'ipam.delete_vlan'
|
||||||
|
model = VLAN
|
||||||
vlan = get_object_or_404(VLAN, pk=pk)
|
template_name = 'ipam/vlan_delete.html'
|
||||||
|
redirect_url = 'ipam:vlan_list'
|
||||||
if request.method == 'POST':
|
|
||||||
form = ConfirmationForm(request.POST)
|
|
||||||
if form.is_valid():
|
|
||||||
try:
|
|
||||||
vlan.delete()
|
|
||||||
messages.success(request, "VLAN {0} has been deleted".format(vlan))
|
|
||||||
return redirect('ipam:vlan_list')
|
|
||||||
except ProtectedError, e:
|
|
||||||
handle_protectederror(vlan, request, e)
|
|
||||||
return redirect('ipam:vlan', pk=vlan.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = ConfirmationForm()
|
|
||||||
|
|
||||||
return render(request, 'ipam/vlan_delete.html', {
|
|
||||||
'vlan': vlan,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('ipam:vlan', kwargs={'pk': vlan.pk})
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
class VLANBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class VLANBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{% extends 'utilities/confirmation_form.html' %}
|
{% extends 'utilities/confirmation_form.html' %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
{% block title %}Delete IP address {{ ipaddress }}?{% endblock %}
|
{% block title %}Delete IP address {{ obj }}?{% endblock %}
|
||||||
|
|
||||||
{% block message %}
|
{% block message %}
|
||||||
<p>Are you sure you want to delete this IP address?</p>
|
<p>Are you sure you want to delete {{ obj }}?</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
{% extends '_base.html' %}
|
{% extends '_base.html' %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
{% block title %}{% if ipaddress %}Editing IP Address {{ ipaddress }}{% else %}Add an IP Address{% endif %}{% endblock %}
|
{% block title %}{% if obj %}Editing IP Address {{ obj }}{% else %}Add an IP Address{% endif %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{% if ipaddress %}Editing IP Address {{ ipaddress }}{% else %}Add an IP Address{% endif %}</h1>
|
<h1>{% if obj %}Editing IP Address {{ obj }}{% else %}Add an IP Address{% endif %}</h1>
|
||||||
<form action="." method="post" class="form form-horizontal">
|
<form action="." method="post" class="form form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -22,13 +22,13 @@
|
|||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
{% render_field form.address %}
|
{% render_field form.address %}
|
||||||
{% render_field form.vrf %}
|
{% render_field form.vrf %}
|
||||||
{% if ipaddress %}
|
{% if obj %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-md-3 control-label">Device</label>
|
<label class="col-md-3 control-label">Device</label>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<p class="form-control-static">
|
<p class="form-control-static">
|
||||||
{% if ipaddress.interface %}
|
{% if obj.interface %}
|
||||||
<a href="{% url 'dcim:device' pk=ipaddress.interface.device.pk %}">{{ ipaddress.interface.device }}</a>
|
<a href="{% url 'dcim:device' pk=obj.interface.device.pk %}">{{ obj.interface.device }}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span>None</span>
|
<span>None</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -38,7 +38,7 @@
|
|||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-md-3 control-label">Interface</label>
|
<label class="col-md-3 control-label">Interface</label>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<p class="form-control-static">{{ ipaddress.interface }}</p>
|
<p class="form-control-static">{{ obj.interface }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -70,9 +70,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 text-right">
|
<div class="col-md-12 text-right">
|
||||||
{% if ipaddress %}
|
{% if obj %}
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Update</button>
|
<button type="submit" name="_update" class="btn btn-primary">Update</button>
|
||||||
<a href="{% url 'ipam:ipaddress' pk=ipaddress.pk %}" class="btn btn-default">Cancel</a>
|
<a href="{% url 'ipam:ipaddress' pk=obj.pk %}" class="btn btn-default">Cancel</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add Another</button>
|
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add Another</button>
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{% extends 'utilities/confirmation_form.html' %}
|
{% extends 'utilities/confirmation_form.html' %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
{% block title %}Delete prefix {{ prefix }}?{% endblock %}
|
{% block title %}Delete prefix {{ obj }}?{% endblock %}
|
||||||
|
|
||||||
{% block message %}
|
{% block message %}
|
||||||
<p>Are you sure you want to delete this prefix?</p>
|
<p>Are you sure you want to delete {{ obj }}?</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{% extends '_base.html' %}
|
{% extends '_base.html' %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
{% block title %}{% if prefix %}Editing prefix {{ prefix }}{% else %}Add a prefix{% endif %}{% endblock %}
|
{% block title %}{% if obj %}Editing prefix {{ obj }}{% else %}Add a prefix{% endif %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% if prefix %}
|
{% if obj %}
|
||||||
<h1>{{ prefix }}</h1>
|
<h1>{{ obj }}</h1>
|
||||||
{% else %}
|
{% else %}
|
||||||
<h1>Add a Prefix</h1>
|
<h1>Add a Prefix</h1>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -35,9 +35,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-md-9 col-md-offset-3">
|
<div class="col-md-9 col-md-offset-3">
|
||||||
{% if prefix %}
|
{% if obj %}
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Update</button>
|
<button type="submit" name="_update" class="btn btn-primary">Update</button>
|
||||||
<a href="{% url 'ipam:prefix' pk=prefix.pk %}" class="btn btn-default">Cancel</a>
|
<a href="{% url 'ipam:prefix' pk=obj.pk %}" class="btn btn-default">Cancel</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add Another</button>
|
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add Another</button>
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
{% extends 'utilities/confirmation_form.html' %}
|
{% extends 'utilities/confirmation_form.html' %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
{% block title %}Delete VLAN {{ vlan }}?{% endblock %}
|
{% block title %}Delete VLAN {{ obj }}?{% endblock %}
|
||||||
|
|
||||||
{% block message %}
|
{% block message %}
|
||||||
<p>
|
<p>
|
||||||
Are you sure you want to delete this VLAN?
|
Are you sure you want to delete this VLAN?
|
||||||
{% if vlan.prefix_set.count %}
|
{% if obj.prefix_set.count %}
|
||||||
The following prefixes will also be deleted:
|
The following prefixes will also be deleted:
|
||||||
{% else %}
|
{% else %}
|
||||||
(There are no prefixes associated with this VLAN.)
|
(There are no prefixes associated with this VLAN.)
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</p>
|
</p>
|
||||||
{% if vlan.prefix_set.count %}
|
{% if obj.prefix_set.count %}
|
||||||
<ul>
|
<ul>
|
||||||
{% for p in vlan.prefix_set.all %}
|
{% for p in obj.prefix_set.all %}
|
||||||
<li><a href="{% url 'ipam:prefix' pk=p.pk %}">{{ p }}</a></li>
|
<li><a href="{% url 'ipam:prefix' pk=p.pk %}">{{ p }}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
{% extends '_base.html' %}
|
{% extends '_base.html' %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
{% block title %}Editing VLAN {{ vlan }}{% endblock %}
|
{% block title %}{% if obj %}Editing VLAN {{ obj }}{% else %}Add a new VLAN{% endif %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% if vlan %}
|
{% if obj %}
|
||||||
<h1>{{ vlan }}</h1>
|
<h1>{{ obj }}</h1>
|
||||||
{% else %}
|
{% else %}
|
||||||
<h1>Add a VLAN</h1>
|
<h1>Add a VLAN</h1>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<form action="." method="post" class="form form-horizontal">
|
<form action="." method="post" class="form form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
<div class="row">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 col-md-offset-3">
|
<div class="col-md-6 col-md-offset-3">
|
||||||
{% if form.non_field_errors %}
|
{% if form.non_field_errors %}
|
||||||
@ -33,9 +34,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-md-9 col-md-offset-3">
|
<div class="col-md-9 col-md-offset-3">
|
||||||
{% if vlan %}
|
{% if obj %}
|
||||||
<button type="submit" name="_update" class="btn btn-primary">Update</button>
|
<button type="submit" name="_update" class="btn btn-primary">Update</button>
|
||||||
<a href="{% url 'ipam:vlan' pk=vlan.pk %}" class="btn btn-default">Cancel</a>
|
<a href="{% url 'ipam:vlan' pk=obj.pk %}" class="btn btn-default">Cancel</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add Another</button>
|
<button type="submit" name="_addanother" class="btn btn-primary">Create and Add Another</button>
|
||||||
|
Reference in New Issue
Block a user