start the django
This commit is contained in:
@@ -1,3 +1,56 @@
|
||||
from django.shortcuts import render
|
||||
from django.shortcuts import render, get_object_or_404, redirect
|
||||
from django.urls import reverse
|
||||
|
||||
from .models import RotaSchedule, Worker
|
||||
from .forms import WorkerForm, LeaveForm, RotaScheduleForm
|
||||
from .services import run_rota_async
|
||||
|
||||
|
||||
def index(request):
|
||||
rotas = RotaSchedule.objects.all().order_by("-created_at")
|
||||
return render(request, "rota/index.html", {"rotas": rotas})
|
||||
|
||||
|
||||
def rota_detail(request, rota_id):
|
||||
rota = get_object_or_404(RotaSchedule, pk=rota_id)
|
||||
if request.method == "POST":
|
||||
# trigger a background run
|
||||
run = run_rota_async(rota.id)
|
||||
return redirect(reverse("rota_run_detail", args=(run.id,)))
|
||||
|
||||
return render(request, "rota/rota_detail.html", {"rota": rota})
|
||||
|
||||
|
||||
def worker_create(request):
|
||||
if request.method == "POST":
|
||||
form = WorkerForm(request.POST)
|
||||
if form.is_valid():
|
||||
worker = form.save()
|
||||
return redirect("/")
|
||||
else:
|
||||
form = WorkerForm()
|
||||
|
||||
return render(request, "rota/worker_form.html", {"form": form})
|
||||
|
||||
|
||||
def worker_detail(request, worker_id):
|
||||
worker = get_object_or_404(Worker, pk=worker_id)
|
||||
if request.method == "POST":
|
||||
form = LeaveForm(request.POST)
|
||||
if form.is_valid():
|
||||
leave = form.save(commit=False)
|
||||
leave.worker = worker
|
||||
leave.save()
|
||||
return redirect("worker_detail", worker_id=worker.id)
|
||||
else:
|
||||
form = LeaveForm()
|
||||
|
||||
return render(request, "rota/worker_detail.html", {"worker": worker, "form": form})
|
||||
|
||||
|
||||
def rota_run_detail(request, run_id):
|
||||
from .models import RotaRun
|
||||
|
||||
run = get_object_or_404(RotaRun, pk=run_id)
|
||||
return render(request, "rota/rota_run_detail.html", {"run": run})
|
||||
|
||||
# Create your views here.
|
||||
|
||||
Reference in New Issue
Block a user