mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-05 01:16:27 +00:00
85 lines
3.2 KiB
Python
85 lines
3.2 KiB
Python
from django.shortcuts import render, redirect
|
|
from django.contrib import messages
|
|
from django.contrib.auth.decorators import login_required, permission_required
|
|
from django.db import IntegrityError
|
|
|
|
from topologie.models import Switch, Port
|
|
from topologie.forms import EditPortForm, EditSwitchForm, AddPortForm
|
|
from users.views import form
|
|
|
|
@login_required
|
|
def index(request):
|
|
is_infra = request.user.has_perms(('infra',))
|
|
switch_list = Switch.objects.order_by('building', 'number')
|
|
return render(request, 'topologie/index.html', {'switch_list': switch_list, 'is_infra':is_infra})
|
|
|
|
@login_required
|
|
def index_port(request, switch_id):
|
|
is_infra = request.user.has_perms(('infra',))
|
|
try:
|
|
switch = Switch.objects.get(pk=switch_id)
|
|
except Switch.DoesNotExist:
|
|
messages.error(request, u"Switch inexistant")
|
|
return redirect("/topologie/")
|
|
port_list = Port.objects.filter(switch = switch).order_by('port')
|
|
return render(request, 'topologie/index_p.html', {'port_list':port_list, 'id_switch':switch_id, 'nom_switch':switch, 'is_infra':is_infra})
|
|
|
|
@login_required
|
|
@permission_required('infra')
|
|
def new_port(request, switch_id):
|
|
try:
|
|
switch = Switch.objects.get(pk=switch_id)
|
|
except Switch.DoesNotExist:
|
|
messages.error(request, u"Switch inexistant")
|
|
return redirect("/topologie/")
|
|
port = AddPortForm(request.POST or None)
|
|
if port.is_valid():
|
|
port = port.save(commit=False)
|
|
port.switch = switch
|
|
try:
|
|
port.save()
|
|
messages.success(request, "Port ajouté")
|
|
except IntegrityError:
|
|
messages.error(request,"Ce port existe déjà" )
|
|
return redirect("/topologie/switch/" + switch_id)
|
|
return form({'topoform':port}, 'topologie/port.html', request)
|
|
|
|
@login_required
|
|
@permission_required('infra')
|
|
def edit_port(request, port_id):
|
|
try:
|
|
port = Port.objects.get(pk=port_id)
|
|
except Port.DoesNotExist:
|
|
messages.error(request, u"Port inexistant")
|
|
return redirect("/topologie/")
|
|
port = EditPortForm(request.POST or None, instance=port)
|
|
if port.is_valid():
|
|
port.save()
|
|
messages.success(request, "Le port a bien été modifié")
|
|
return redirect("/topologie/")
|
|
return form({'topoform':port}, 'topologie/port.html', request)
|
|
|
|
@login_required
|
|
@permission_required('infra')
|
|
def new_switch(request):
|
|
switch = EditSwitchForm(request.POST or None)
|
|
if switch.is_valid():
|
|
switch.save()
|
|
messages.success(request, "Le switch a été créé")
|
|
return redirect("/topologie/")
|
|
return form({'topoform':switch}, 'topologie/port.html', request)
|
|
|
|
@login_required
|
|
@permission_required('infra')
|
|
def edit_switch(request, switch_id):
|
|
try:
|
|
switch = Switch.objects.get(pk=switch_id)
|
|
except Switch.DoesNotExist:
|
|
messages.error(request, u"Switch inexistant")
|
|
return redirect("/topologie/")
|
|
switch = EditSwitchForm(request.POST or None, instance=switch)
|
|
if switch.is_valid():
|
|
switch.save()
|
|
messages.success(request, "Le switch a bien été modifié")
|
|
return redirect("/topologie/")
|
|
return form({'topoform':switch}, 'topologie/port.html', request)
|