8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-12-26 08:53:46 +00:00
re2o/topologie/views.py

88 lines
3.2 KiB
Python
Raw Normal View History

from django.shortcuts import render, redirect
from django.contrib import messages
2016-07-09 02:12:09 +00:00
from django.contrib.auth.decorators import login_required, permission_required
2016-07-06 21:29:31 +00:00
from django.db import IntegrityError
from topologie.models import Switch, Port
2016-07-06 21:29:31 +00:00
from topologie.forms import EditPortForm, EditSwitchForm, AddPortForm
from users.views import form
2016-07-08 10:35:53 +00:00
@login_required
2016-07-09 15:16:44 +00:00
@permission_required('cableur')
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})
2016-07-08 10:35:53 +00:00
@login_required
2016-07-09 15:16:44 +00:00
@permission_required('cableur')
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})
2016-07-06 21:29:31 +00:00
2016-07-08 10:35:53 +00:00
@login_required
@permission_required('infra')
2016-07-06 21:29:31 +00:00
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à" )
2016-07-06 21:29:31 +00:00
return redirect("/topologie/switch/" + switch_id)
return form({'topoform':port}, 'topologie/port.html', request)
2016-07-08 10:35:53 +00:00
@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é")
2016-07-06 21:29:31 +00:00
return redirect("/topologie/")
return form({'topoform':port}, 'topologie/port.html', request)
2016-07-08 10:35:53 +00:00
@login_required
@permission_required('infra')
2016-07-06 21:29:31 +00:00
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)
2016-07-08 10:35:53 +00:00
@login_required
@permission_required('infra')
2016-07-06 21:29:31 +00:00
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)