1
0
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:
Jeremy Stretch
2016-05-03 15:46:30 -04:00
parent 2945630fd3
commit 9acd23e08a
6 changed files with 58 additions and 158 deletions

View File

@ -4,20 +4,20 @@ from . import views
urlpatterns = [
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/edit/$', views.CircuitBulkEditView.as_view(), name='circuit_bulk_edit'),
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+)/edit/$', views.circuit_edit, name='circuit_edit'),
url(r'^circuits/(?P<pk>\d+)/delete/$', views.circuit_delete, name='circuit_delete'),
url(r'^circuits/(?P<pk>\d+)/edit/$', views.CircuitEditView.as_view(), name='circuit_edit'),
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/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/edit/$', views.ProviderBulkEditView.as_view(), name='provider_bulk_edit'),
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-]+)/edit/$', views.provider_edit, name='provider_edit'),
url(r'^providers/(?P<slug>[\w-]+)/delete/$', views.provider_delete, name='provider_delete'),
url(r'^providers/(?P<slug>[\w-]+)/edit/$', views.ProviderEditView.as_view(), name='provider_edit'),
url(r'^providers/(?P<slug>[\w-]+)/delete/$', views.ProviderDeleteView.as_view(), name='provider_delete'),
]

View File

@ -1,16 +1,13 @@
from django.contrib import messages
from django.contrib.auth.decorators import permission_required
from django.contrib.auth.mixins import PermissionRequiredMixin
from django.core.urlresolvers import reverse
from django.db.models import Count, ProtectedError
from django.shortcuts import get_object_or_404, redirect, render
from django.db.models import Count
from django.shortcuts import get_object_or_404, render
from utilities.error_handlers import handle_protectederror
from utilities.forms import ConfirmationForm
from utilities.views import BulkImportView, BulkEditView, BulkDeleteView, ObjectListView
from utilities.views import BulkImportView, BulkEditView, BulkDeleteView, ObjectListView, ObjectAddView,\
ObjectEditView, ObjectDeleteView
from .filters import CircuitFilter
from .forms import CircuitForm, CircuitImportForm, CircuitBulkEditForm, CircuitBulkDeleteForm, CircuitFilterForm, \
from .forms import CircuitForm, CircuitImportForm, CircuitBulkEditForm, CircuitBulkDeleteForm, CircuitFilterForm,\
ProviderForm, ProviderImportForm, ProviderBulkEditForm, ProviderBulkDeleteForm
from .models import Circuit, Provider
from .tables import CircuitTable, CircuitBulkEditTable, ProviderTable, ProviderBulkEditTable
@ -39,74 +36,26 @@ def provider(request, slug):
})
@permission_required('circuits.add_provider')
def provider_add(request):
if request.method == 'POST':
form = ProviderForm(request.POST)
if form.is_valid():
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'),
})
class ProviderAddView(PermissionRequiredMixin, ObjectAddView):
permission_required = 'circuits.add_provider'
model = Provider
form_class = ProviderForm
template_name = 'circuits/provider_edit.html'
cancel_url = 'circuits:provider_list'
@permission_required('circuits.change_provider')
def provider_edit(request, slug):
provider = get_object_or_404(Provider, slug=slug)
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}),
})
class ProviderEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'circuits.change_provider'
model = Provider
form_class = ProviderForm
template_name = 'circuits/provider_edit.html'
@permission_required('circuits.delete_provider')
def provider_delete(request, slug):
provider = get_object_or_404(Provider, slug=slug)
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 ProviderDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'circuits.delete_provider'
model = Provider
template_name = 'circuits/provider_delete.html'
redirect_url = 'circuits:provider_list'
class ProviderBulkImportView(PermissionRequiredMixin, BulkImportView):
@ -166,76 +115,27 @@ def circuit(request, pk):
})
@permission_required('circuits.add_circuit')
def circuit_add(request):
if request.method == 'POST':
form = CircuitForm(request.POST)
if form.is_valid():
circuit = form.save()
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'),
})
class CircuitAddView(PermissionRequiredMixin, ObjectAddView):
permission_required = 'circuits.add_circuit'
model = Circuit
form_class = CircuitForm
template_name = 'circuits/circuit_edit.html'
cancel_url = 'circuits:circuit_list'
fields_initial = ['site']
@permission_required('circuits.change_circuit')
def circuit_edit(request, pk):
circuit = get_object_or_404(Circuit, pk=pk)
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}),
})
class CircuitEditView(PermissionRequiredMixin, ObjectEditView):
permission_required = 'circuits.change_circuit'
model = Circuit
form_class = CircuitForm
template_name = 'circuits/circuit_edit.html'
@permission_required('circuits.delete_circuit')
def circuit_delete(request, pk):
circuit = get_object_or_404(Circuit, pk=pk)
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 CircuitDeleteView(PermissionRequiredMixin, ObjectDeleteView):
permission_required = 'circuits.delete_circuit'
model = Circuit
template_name = 'circuits/circuit_delete.html'
redirect_url = 'circuits:circuit_list'
class CircuitBulkImportView(PermissionRequiredMixin, BulkImportView):

View File

@ -1,8 +1,8 @@
{% extends 'utilities/confirmation_form.html' %}
{% load form_helpers %}
{% block title %}Delete {{ circuit.provider }} Circuit {{ circuit.cid }}?{% endblock %}
{% block title %}Delete {{ obj.provider }} - {{ obj.cid }}?{% endblock %}
{% 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 %}

View File

@ -1,11 +1,11 @@
{% extends '_base.html' %}
{% 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 %}
{% if circuit %}
<h1>Editing {{ circuit.provider }} circuit {{ circuit.cid }}</h1>
{% if obj %}
<h1>Editing {{ obj.provider }} circuit {{ obj.cid }}</h1>
{% else %}
<h1>Add a Circuit</h1>
{% endif %}
@ -70,9 +70,9 @@
</div>
<div class="row">
<div class="col-md-12 text-right">
{% if circuit %}
{% if obj %}
<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 %}
<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>

View File

@ -1,8 +1,8 @@
{% extends 'utilities/confirmation_form.html' %}
{% load form_helpers %}
{% block title %}Delete provider {{ provider }}?{% endblock %}
{% block title %}Delete provider {{ obj }}?{% endblock %}
{% 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 %}

View File

@ -1,11 +1,11 @@
{% extends '_base.html' %}
{% 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 %}
{% if provider %}
<h1>Editing {{ provider }}</h1>
{% if obj %}
<h1>Editing {{ obj }}</h1>
{% else %}
<h1>Add a Provider</h1>
{% endif %}
@ -55,9 +55,9 @@
</div>
<div class="row">
<div class="col-md-12 text-right">
{% if provider %}
{% if obj %}
<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 %}
<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>