# Create your views here.
|
|
from django.shortcuts import render, get_object_or_404, redirect
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
from .models import Proyecto, Accion, Riesgo
|
|
from .forms import ProyectoForm, RiesgoForm
|
|
|
|
import logging
|
|
|
|
|
|
@login_required
|
|
def principal(request):
|
|
proyectos = Proyecto.objects.all()
|
|
riesgos = Riesgo.objects.all()
|
|
|
|
return render(request, 'gestion/index.html', {'proyectos': proyectos, 'riesgos': riesgos})
|
|
|
|
|
|
# Vistas para los proyectos
|
|
@login_required
|
|
def lista_proyectos(request):
|
|
proyectos = Proyecto.objects.all()
|
|
return render(request, 'gestion/lista_proyectos.html', {'proyectos': proyectos})
|
|
|
|
|
|
@login_required
|
|
def detalle_proyecto(request, proyecto_id):
|
|
proyecto = get_object_or_404(Proyecto, pk=proyecto_id)
|
|
|
|
riesgos = Riesgo.objects.filter(proyecto=proyecto_id)
|
|
|
|
return render(request, 'gestion/detalle_proyecto.html', {'proyecto': proyecto, 'riesgos': riesgos})
|
|
|
|
|
|
@login_required
|
|
def nuevo_proyecto(request):
|
|
if request.method == 'POST':
|
|
form = ProyectoForm(request.POST, request.FILES)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('gestion:lista_proyectos')
|
|
else:
|
|
form = ProyectoForm()
|
|
return render(request, 'gestion/form_proyecto.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def editar_proyecto(request, proyecto_id):
|
|
proyecto = get_object_or_404(Proyecto, pk=proyecto_id)
|
|
if request.method == 'POST':
|
|
form = ProyectoForm(request.POST, request.FILES, instance=proyecto)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('gestion:lista_proyectos')
|
|
else:
|
|
form = ProyectoForm(instance=proyecto)
|
|
return render(request, 'gestion/form_proyecto.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def eliminar_proyecto(request, proyecto_id):
|
|
proyecto = get_object_or_404(Proyecto, pk=proyecto_id)
|
|
proyecto.delete()
|
|
return redirect('gestion:lista_proyectos')
|
|
|
|
|
|
# Vistas para los riesgos
|
|
@login_required
|
|
def lista_riesgos(request):
|
|
riesgos = Riesgo.objects.all()
|
|
return render(request, 'gestion/lista_riesgos.html', {'riesgos': riesgos})
|
|
|
|
|
|
@login_required
|
|
def detalle_riesgo(request, riesgo_id):
|
|
riesgo = get_object_or_404(Riesgo, pk=riesgo_id)
|
|
return render(request, 'gestion/detalle_riesgo.html', {'riesgo': riesgo})
|
|
|
|
|
|
@login_required
|
|
def nuevo_riesgo(request):
|
|
|
|
proyectos = Proyecto.objects.all() # vamos a ver si hay vehículos dados de alta
|
|
|
|
if proyectos:
|
|
if request.method == 'POST':
|
|
form = RiesgoForm(request.POST, request.FILES)
|
|
if form.is_valid():
|
|
instancia = form.save(commit=False)
|
|
|
|
instancia.valor = float(instancia.importe) * float(instancia.probabilidad) / 100
|
|
|
|
instancia.save()
|
|
|
|
return redirect('gestion:lista_riesgos')
|
|
else:
|
|
form = RiesgoForm()
|
|
return render(request, 'gestion/form_riesgo.html', {'form': form})
|
|
else:
|
|
return render(request, 'gestion/index.html')
|
|
|
|
|
|
@login_required
|
|
def editar_riesgo(request, riesgo_id):
|
|
riesgo = get_object_or_404(Riesgo, pk=riesgo_id)
|
|
|
|
if request.method == 'POST':
|
|
form = RiesgoForm(request.POST, request.FILES, instance=riesgo)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('gestion:lista_riesgos')
|
|
else:
|
|
form = RiesgoForm(instance=riesgo)
|
|
return render(request, 'gestion/form_riesgo.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def eliminar_riesgo(request, riesgo_id):
|
|
riesgo = Riesgo.objects.get(pk=riesgo_id)
|
|
riesgo.delete()
|
|
return redirect('gestion:lista_riesgos')
|