start the django

This commit is contained in:
Ross
2025-12-09 10:01:04 +00:00
parent a230c9d94c
commit 4927697621
14 changed files with 511 additions and 7 deletions
+55 -2
View File
@@ -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.