mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Converted circuits add/edit/delete views to CBVs
This commit is contained in:
@ -4,20 +4,20 @@ from . import views
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^circuits/$', views.CircuitListView.as_view(), name='circuit_list'),
|
url(r'^circuits/$', views.CircuitListView.as_view(), name='circuit_list'),
|
||||||
url(r'^circuits/add/$', views.circuit_add, name='circuit_add'),
|
url(r'^circuits/add/$', views.CircuitAddView.as_view(), name='circuit_add'),
|
||||||
url(r'^circuits/import/$', views.CircuitBulkImportView.as_view(), name='circuit_import'),
|
url(r'^circuits/import/$', views.CircuitBulkImportView.as_view(), name='circuit_import'),
|
||||||
url(r'^circuits/edit/$', views.CircuitBulkEditView.as_view(), name='circuit_bulk_edit'),
|
url(r'^circuits/edit/$', views.CircuitBulkEditView.as_view(), name='circuit_bulk_edit'),
|
||||||
url(r'^circuits/delete/$', views.CircuitBulkDeleteView.as_view(), name='circuit_bulk_delete'),
|
url(r'^circuits/delete/$', views.CircuitBulkDeleteView.as_view(), name='circuit_bulk_delete'),
|
||||||
url(r'^circuits/(?P<pk>\d+)/$', views.circuit, name='circuit'),
|
url(r'^circuits/(?P<pk>\d+)/$', views.circuit, name='circuit'),
|
||||||
url(r'^circuits/(?P<pk>\d+)/edit/$', views.circuit_edit, name='circuit_edit'),
|
url(r'^circuits/(?P<pk>\d+)/edit/$', views.CircuitEditView.as_view(), name='circuit_edit'),
|
||||||
url(r'^circuits/(?P<pk>\d+)/delete/$', views.circuit_delete, name='circuit_delete'),
|
url(r'^circuits/(?P<pk>\d+)/delete/$', views.CircuitDeleteView.as_view(), name='circuit_delete'),
|
||||||
|
|
||||||
url(r'^providers/$', views.ProviderListView.as_view(), name='provider_list'),
|
url(r'^providers/$', views.ProviderListView.as_view(), name='provider_list'),
|
||||||
url(r'^providers/add/$', views.provider_add, name='provider_add'),
|
url(r'^providers/add/$', views.ProviderAddView.as_view(), name='provider_add'),
|
||||||
url(r'^providers/import/$', views.ProviderBulkImportView.as_view(), name='provider_import'),
|
url(r'^providers/import/$', views.ProviderBulkImportView.as_view(), name='provider_import'),
|
||||||
url(r'^providers/edit/$', views.ProviderBulkEditView.as_view(), name='provider_bulk_edit'),
|
url(r'^providers/edit/$', views.ProviderBulkEditView.as_view(), name='provider_bulk_edit'),
|
||||||
url(r'^providers/delete/$', views.ProviderBulkDeleteView.as_view(), name='provider_bulk_delete'),
|
url(r'^providers/delete/$', views.ProviderBulkDeleteView.as_view(), name='provider_bulk_delete'),
|
||||||
url(r'^providers/(?P<slug>[\w-]+)/$', views.provider, name='provider'),
|
url(r'^providers/(?P<slug>[\w-]+)/$', views.provider, name='provider'),
|
||||||
url(r'^providers/(?P<slug>[\w-]+)/edit/$', views.provider_edit, name='provider_edit'),
|
url(r'^providers/(?P<slug>[\w-]+)/edit/$', views.ProviderEditView.as_view(), name='provider_edit'),
|
||||||
url(r'^providers/(?P<slug>[\w-]+)/delete/$', views.provider_delete, name='provider_delete'),
|
url(r'^providers/(?P<slug>[\w-]+)/delete/$', views.ProviderDeleteView.as_view(), name='provider_delete'),
|
||||||
]
|
]
|
||||||
|
@ -1,16 +1,13 @@
|
|||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import permission_required
|
|
||||||
from django.contrib.auth.mixins import PermissionRequiredMixin
|
from django.contrib.auth.mixins import PermissionRequiredMixin
|
||||||
from django.core.urlresolvers import reverse
|
from django.db.models import Count
|
||||||
from django.db.models import Count, ProtectedError
|
from django.shortcuts import get_object_or_404, render
|
||||||
from django.shortcuts import get_object_or_404, redirect, render
|
|
||||||
|
|
||||||
from utilities.error_handlers import handle_protectederror
|
from utilities.views import BulkImportView, BulkEditView, BulkDeleteView, ObjectListView, ObjectAddView,\
|
||||||
from utilities.forms import ConfirmationForm
|
ObjectEditView, ObjectDeleteView
|
||||||
from utilities.views import BulkImportView, BulkEditView, BulkDeleteView, ObjectListView
|
|
||||||
|
|
||||||
from .filters import CircuitFilter
|
from .filters import CircuitFilter
|
||||||
from .forms import CircuitForm, CircuitImportForm, CircuitBulkEditForm, CircuitBulkDeleteForm, CircuitFilterForm, \
|
from .forms import CircuitForm, CircuitImportForm, CircuitBulkEditForm, CircuitBulkDeleteForm, CircuitFilterForm,\
|
||||||
ProviderForm, ProviderImportForm, ProviderBulkEditForm, ProviderBulkDeleteForm
|
ProviderForm, ProviderImportForm, ProviderBulkEditForm, ProviderBulkDeleteForm
|
||||||
from .models import Circuit, Provider
|
from .models import Circuit, Provider
|
||||||
from .tables import CircuitTable, CircuitBulkEditTable, ProviderTable, ProviderBulkEditTable
|
from .tables import CircuitTable, CircuitBulkEditTable, ProviderTable, ProviderBulkEditTable
|
||||||
@ -39,74 +36,26 @@ def provider(request, slug):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('circuits.add_provider')
|
class ProviderAddView(PermissionRequiredMixin, ObjectAddView):
|
||||||
def provider_add(request):
|
permission_required = 'circuits.add_provider'
|
||||||
|
model = Provider
|
||||||
if request.method == 'POST':
|
form_class = ProviderForm
|
||||||
form = ProviderForm(request.POST)
|
template_name = 'circuits/provider_edit.html'
|
||||||
if form.is_valid():
|
cancel_url = 'circuits:provider_list'
|
||||||
provider = form.save()
|
|
||||||
messages.success(request, "Added new provider: {0}".format(provider))
|
|
||||||
if '_addanother' in request.POST:
|
|
||||||
return redirect('circuits:provider_add')
|
|
||||||
else:
|
|
||||||
return redirect('circuits:provider', slug=provider.slug)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = ProviderForm()
|
|
||||||
|
|
||||||
return render(request, 'circuits/provider_edit.html', {
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('circuits:provider_list'),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('circuits.change_provider')
|
class ProviderEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def provider_edit(request, slug):
|
permission_required = 'circuits.change_provider'
|
||||||
|
model = Provider
|
||||||
provider = get_object_or_404(Provider, slug=slug)
|
form_class = ProviderForm
|
||||||
|
template_name = 'circuits/provider_edit.html'
|
||||||
if request.method == 'POST':
|
|
||||||
form = ProviderForm(request.POST, instance=provider)
|
|
||||||
if form.is_valid():
|
|
||||||
provider = form.save()
|
|
||||||
messages.success(request, "Modified provider {0}".format(provider))
|
|
||||||
return redirect('circuits:provider', slug=provider.slug)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = ProviderForm(instance=provider)
|
|
||||||
|
|
||||||
return render(request, 'circuits/provider_edit.html', {
|
|
||||||
'provider': provider,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('circuits:provider', kwargs={'slug': provider.slug}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('circuits.delete_provider')
|
class ProviderDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
def provider_delete(request, slug):
|
permission_required = 'circuits.delete_provider'
|
||||||
|
model = Provider
|
||||||
provider = get_object_or_404(Provider, slug=slug)
|
template_name = 'circuits/provider_delete.html'
|
||||||
|
redirect_url = 'circuits:provider_list'
|
||||||
if request.method == 'POST':
|
|
||||||
form = ConfirmationForm(request.POST)
|
|
||||||
if form.is_valid():
|
|
||||||
try:
|
|
||||||
provider.delete()
|
|
||||||
messages.success(request, "Provider {0} has been deleted".format(provider))
|
|
||||||
return redirect('circuits:provider_list')
|
|
||||||
except ProtectedError, e:
|
|
||||||
handle_protectederror(provider, request, e)
|
|
||||||
return redirect('circuits:provider', slug=provider.slug)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = ConfirmationForm()
|
|
||||||
|
|
||||||
return render(request, 'circuits/provider_delete.html', {
|
|
||||||
'provider': provider,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('circuits:provider', kwargs={'slug': provider.slug})
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
class ProviderBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class ProviderBulkImportView(PermissionRequiredMixin, BulkImportView):
|
||||||
@ -166,76 +115,27 @@ def circuit(request, pk):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@permission_required('circuits.add_circuit')
|
class CircuitAddView(PermissionRequiredMixin, ObjectAddView):
|
||||||
def circuit_add(request):
|
permission_required = 'circuits.add_circuit'
|
||||||
|
model = Circuit
|
||||||
if request.method == 'POST':
|
form_class = CircuitForm
|
||||||
form = CircuitForm(request.POST)
|
template_name = 'circuits/circuit_edit.html'
|
||||||
if form.is_valid():
|
cancel_url = 'circuits:circuit_list'
|
||||||
circuit = form.save()
|
fields_initial = ['site']
|
||||||
messages.success(request, "Added new circuit: {0}".format(circuit))
|
|
||||||
if '_addanother' in request.POST:
|
|
||||||
return redirect('circuits:circuit_add')
|
|
||||||
else:
|
|
||||||
return redirect('circuits:circuit', pk=circuit.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = CircuitForm(initial={
|
|
||||||
'site': request.GET.get('site'),
|
|
||||||
})
|
|
||||||
|
|
||||||
return render(request, 'circuits/circuit_edit.html', {
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('circuits:circuit_list'),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('circuits.change_circuit')
|
class CircuitEditView(PermissionRequiredMixin, ObjectEditView):
|
||||||
def circuit_edit(request, pk):
|
permission_required = 'circuits.change_circuit'
|
||||||
|
model = Circuit
|
||||||
circuit = get_object_or_404(Circuit, pk=pk)
|
form_class = CircuitForm
|
||||||
|
template_name = 'circuits/circuit_edit.html'
|
||||||
if request.method == 'POST':
|
|
||||||
form = CircuitForm(request.POST, instance=circuit)
|
|
||||||
if form.is_valid():
|
|
||||||
circuit = form.save()
|
|
||||||
messages.success(request, "Modified circuit {0}".format(circuit))
|
|
||||||
return redirect('circuits:circuit', pk=circuit.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = CircuitForm(instance=circuit)
|
|
||||||
|
|
||||||
return render(request, 'circuits/circuit_edit.html', {
|
|
||||||
'circuit': circuit,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('circuits:circuit', kwargs={'pk': circuit.pk}),
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
@permission_required('circuits.delete_circuit')
|
class CircuitDeleteView(PermissionRequiredMixin, ObjectDeleteView):
|
||||||
def circuit_delete(request, pk):
|
permission_required = 'circuits.delete_circuit'
|
||||||
|
model = Circuit
|
||||||
circuit = get_object_or_404(Circuit, pk=pk)
|
template_name = 'circuits/circuit_delete.html'
|
||||||
|
redirect_url = 'circuits:circuit_list'
|
||||||
if request.method == 'POST':
|
|
||||||
form = ConfirmationForm(request.POST)
|
|
||||||
if form.is_valid():
|
|
||||||
try:
|
|
||||||
circuit.delete()
|
|
||||||
messages.success(request, "Circuit {0} has been deleted".format(circuit))
|
|
||||||
return redirect('circuits:circuit_list')
|
|
||||||
except ProtectedError, e:
|
|
||||||
handle_protectederror(circuit, request, e)
|
|
||||||
return redirect('circuits:circuit', pk=circuit.pk)
|
|
||||||
|
|
||||||
else:
|
|
||||||
form = ConfirmationForm()
|
|
||||||
|
|
||||||
return render(request, 'circuits/circuit_delete.html', {
|
|
||||||
'circuit': circuit,
|
|
||||||
'form': form,
|
|
||||||
'cancel_url': reverse('circuits:circuit', kwargs={'pk': circuit.pk})
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
class CircuitBulkImportView(PermissionRequiredMixin, BulkImportView):
|
class CircuitBulkImportView(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 {{ circuit.provider }} Circuit {{ circuit.cid }}?{% endblock %}
|
{% block title %}Delete {{ obj.provider }} - {{ obj.cid }}?{% endblock %}
|
||||||
|
|
||||||
{% block message %}
|
{% block message %}
|
||||||
<p>Are you sure you want to delete rack {{ circuit }} from {{ circuit.site }}?</p>
|
<p>Are you sure you want to delete circuit {{ obj }} from {{ obj.site }}?</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{% extends '_base.html' %}
|
{% extends '_base.html' %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
{% block title %}{% if circuit %}Editing {{ circuit }}{% else %}Add a circuit{% endif %}{% endblock %}
|
{% block title %}{% if obj %}Editing {{ obj }}{% else %}Add a circuit{% endif %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% if circuit %}
|
{% if obj %}
|
||||||
<h1>Editing {{ circuit.provider }} circuit {{ circuit.cid }}</h1>
|
<h1>Editing {{ obj.provider }} circuit {{ obj.cid }}</h1>
|
||||||
{% else %}
|
{% else %}
|
||||||
<h1>Add a Circuit</h1>
|
<h1>Add a Circuit</h1>
|
||||||
{% 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 circuit %}
|
{% 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 'circuits:circuit' pk=circuit.pk %}" class="btn btn-default">Cancel</a>
|
<a href="{% url 'circuits:circuit' 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 provider {{ provider }}?{% endblock %}
|
{% block title %}Delete provider {{ obj }}?{% endblock %}
|
||||||
|
|
||||||
{% block message %}
|
{% block message %}
|
||||||
<p>Are you sure you want to delete provider {{ provider }}?</p>
|
<p>Are you sure you want to delete provider {{ obj }}?</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{% extends '_base.html' %}
|
{% extends '_base.html' %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
{% block title %}{% if provider %}Editing {{ provider }}{% else %}Add a provider{% endif %}{% endblock %}
|
{% block title %}{% if obj %}Editing {{ obj }}{% else %}Add a provider{% endif %}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% if provider %}
|
{% if obj %}
|
||||||
<h1>Editing {{ provider }}</h1>
|
<h1>Editing {{ obj }}</h1>
|
||||||
{% else %}
|
{% else %}
|
||||||
<h1>Add a Provider</h1>
|
<h1>Add a Provider</h1>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -55,9 +55,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 text-right">
|
<div class="col-md-12 text-right">
|
||||||
{% if provider %}
|
{% 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 'circuits:provider' slug=provider.slug %}" class="btn btn-default">Cancel</a>
|
<a href="{% url 'circuits:provider' slug=obj.slug %}" 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