56 lines
1.7 KiB
Python
56 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
|
|
|
|
|
|
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})
|
|
|
|
|
|
def details(request, deployment_id):
|
|
deployment = get_object_or_404(Deployment, id=deployment_id)
|
|
|
|
if request.method == "POST":
|
|
if deployment.status == deployment.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})
|