mumui/deployment/views.py
2023-09-17 14:06:23 +02:00

58 lines
1.7 KiB
Python

from uuid import uuid4
from django.core.paginator import Paginator
from django.http import (
HttpResponseRedirect,
HttpResponseServerError,
HttpResponseBadRequest,
)
from django.shortcuts import render, get_object_or_404
from deployment.forms import DeploymentForm
from deployment.models import Deployment, Status
def index(request):
deployments = Deployment.objects.filter(user=request.user.id)
paginator = Paginator(deployments, 5)
page_number = request.GET.get("page")
page_obj = paginator.get_page(page_number)
return render(
request, "deployment/board.html", {"page_obj": page_obj, "url": "/events/"}
)
def details(request, deployment_id):
deployment = get_object_or_404(Deployment, id=deployment_id)
if request.method == "POST":
if deployment.status == Status.RUNNING:
return HttpResponseBadRequest("deployment is running")
try:
deployment.delete()
except Exception as e:
return HttpResponseServerError(e)
return HttpResponseRedirect("/deployment")
deployment = get_object_or_404(Deployment, id=deployment_id)
return render(request, "deployment/details.html", {"deployment": deployment})
def create(request):
if request.method == "POST":
form = DeploymentForm(request.POST)
if form.is_valid():
try:
Deployment.objects.create(
user=request.user, id=uuid4(), **form.cleaned_data
)
except Exception as e:
return HttpResponseServerError(e)
return HttpResponseRedirect("/deployment")
else:
form = DeploymentForm
return render(request, "deployment/create.html", {"form": form})