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})