From 9acd23e08a2d97e43de0e1b8693a8db03451e3a5 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 3 May 2016 15:46:30 -0400 Subject: [PATCH] Converted circuits add/edit/delete views to CBVs --- netbox/circuits/urls.py | 12 +- netbox/circuits/views.py | 176 ++++-------------- netbox/templates/circuits/circuit_delete.html | 4 +- netbox/templates/circuits/circuit_edit.html | 10 +- .../templates/circuits/provider_delete.html | 4 +- netbox/templates/circuits/provider_edit.html | 10 +- 6 files changed, 58 insertions(+), 158 deletions(-) diff --git a/netbox/circuits/urls.py b/netbox/circuits/urls.py index d32817028..0822e6543 100644 --- a/netbox/circuits/urls.py +++ b/netbox/circuits/urls.py @@ -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\d+)/$', views.circuit, name='circuit'), - url(r'^circuits/(?P\d+)/edit/$', views.circuit_edit, name='circuit_edit'), - url(r'^circuits/(?P\d+)/delete/$', views.circuit_delete, name='circuit_delete'), + url(r'^circuits/(?P\d+)/edit/$', views.CircuitEditView.as_view(), name='circuit_edit'), + url(r'^circuits/(?P\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[\w-]+)/$', views.provider, name='provider'), - url(r'^providers/(?P[\w-]+)/edit/$', views.provider_edit, name='provider_edit'), - url(r'^providers/(?P[\w-]+)/delete/$', views.provider_delete, name='provider_delete'), + url(r'^providers/(?P[\w-]+)/edit/$', views.ProviderEditView.as_view(), name='provider_edit'), + url(r'^providers/(?P[\w-]+)/delete/$', views.ProviderDeleteView.as_view(), name='provider_delete'), ] diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index 43c19aae5..d7895289e 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -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): diff --git a/netbox/templates/circuits/circuit_delete.html b/netbox/templates/circuits/circuit_delete.html index a9f0b0382..10de3cbb4 100644 --- a/netbox/templates/circuits/circuit_delete.html +++ b/netbox/templates/circuits/circuit_delete.html @@ -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 %} -

Are you sure you want to delete rack {{ circuit }} from {{ circuit.site }}?

+

Are you sure you want to delete circuit {{ obj }} from {{ obj.site }}?

{% endblock %} diff --git a/netbox/templates/circuits/circuit_edit.html b/netbox/templates/circuits/circuit_edit.html index d314d665a..4c20139ca 100644 --- a/netbox/templates/circuits/circuit_edit.html +++ b/netbox/templates/circuits/circuit_edit.html @@ -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 %} -

Editing {{ circuit.provider }} circuit {{ circuit.cid }}

+{% if obj %} +

Editing {{ obj.provider }} circuit {{ obj.cid }}

{% else %}

Add a Circuit

{% endif %} @@ -70,9 +70,9 @@
- {% if circuit %} + {% if obj %} - Cancel + Cancel {% else %} diff --git a/netbox/templates/circuits/provider_delete.html b/netbox/templates/circuits/provider_delete.html index a64af7495..efb6d106a 100644 --- a/netbox/templates/circuits/provider_delete.html +++ b/netbox/templates/circuits/provider_delete.html @@ -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 %} -

Are you sure you want to delete provider {{ provider }}?

+

Are you sure you want to delete provider {{ obj }}?

{% endblock %} diff --git a/netbox/templates/circuits/provider_edit.html b/netbox/templates/circuits/provider_edit.html index e7613cf8c..9b2959eeb 100644 --- a/netbox/templates/circuits/provider_edit.html +++ b/netbox/templates/circuits/provider_edit.html @@ -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 %} -

Editing {{ provider }}

+{% if obj %} +

Editing {{ obj }}

{% else %}

Add a Provider

{% endif %} @@ -55,9 +55,9 @@
- {% if provider %} + {% if obj %} - Cancel + Cancel {% else %}