From 00c72ade80e8be328877d90bd2ab225274a814d5 Mon Sep 17 00:00:00 2001 From: Gabriel Detraz Date: Mon, 4 Sep 2017 04:45:36 +0200 Subject: [PATCH] Suppression des ports --- topologie/templates/topologie/aff_port.html | 3 +++ topologie/urls.py | 1 + topologie/views.py | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/topologie/templates/topologie/aff_port.html b/topologie/templates/topologie/aff_port.html index 18aca87d..6bd84abc 100644 --- a/topologie/templates/topologie/aff_port.html +++ b/topologie/templates/topologie/aff_port.html @@ -62,6 +62,9 @@ with this program; if not, write to the Free Software Foundation, Inc., + + + {% endif %} diff --git a/topologie/urls.py b/topologie/urls.py index 776c4259..3c3ed49a 100644 --- a/topologie/urls.py +++ b/topologie/urls.py @@ -38,6 +38,7 @@ urlpatterns = [ url(r'^history/(?Pstack)/(?P[0-9]+)$', views.history, name='history'), url(r'^edit_port/(?P[0-9]+)$', views.edit_port, name='edit-port'), url(r'^new_port/(?P[0-9]+)$', views.new_port, name='new-port'), + url(r'^del_port/(?P[0-9]+)$', views.del_port, name='del-port'), url(r'^edit_switch/(?P[0-9]+)$', views.edit_switch, name='edit-switch'), url(r'^new_stack/$', views.new_stack, name='new-stack'), url(r'^index_stack/$', views.index_stack, name='index-stack'), diff --git a/topologie/views.py b/topologie/views.py index 974ca511..37188df0 100644 --- a/topologie/views.py +++ b/topologie/views.py @@ -167,6 +167,26 @@ def edit_port(request, port_id): return redirect("/topologie/switch/" + str(port_object.switch.id)) return form({'topoform':port}, 'topologie/topo.html', request) +@login_required +@permission_required('infra') +def del_port(request,port_id): + try: + port = Port.objects.get(pk=port_id) + except Port.DoesNotExist: + messages.error(request, u"Port inexistant") + return redirect('/topologie/') + if request.method == "POST": + try: + with transaction.atomic(), reversion.create_revision(): + port.delete() + reversion.set_user(request.user) + reversion.set_comment("Destruction") + messages.success(request, "Le port a eté détruit") + except ProtectedError: + messages.error(request, "Le port %s est affecté à un autre objet, impossible de le supprimer" % port) + return redirect('/topologie/switch/' + str(port.switch.id)) + return form({'objet':port}, 'topologie/delete.html', request) + @login_required @permission_required('infra') def new_stack(request):