CTF-Manager/source/apps/ctf/views.py

43 lines
1.2 KiB
Python

from django.shortcuts import render, redirect
from source.apps.ctf import forms, models
# Create your views here.
async def view_homepage(request):
return render(request, "ctf/homepage.html")
async def view_teams(request):
teams = [team async for team in models.Team.objects.all()]
return render(request, "ctf/team_list.html", context={"teams": teams})
async def view_team_create(request):
if request.method == "POST":
form = forms.TeamForm(request.POST)
if form.is_valid():
# TODO(Faraphel): additional password to prevent unwanted team creation ?
await models.Team.objects.acreate(name=form.cleaned_data["name"])
return redirect("/")
else:
form = forms.TeamForm()
return render(request, "ctf/team_create.html", context={"form": form})
def view_flags(request):
flags = models.Flag.objects.all()
return render(request, "ctf/flag_list.html", context={"flags": flags})
async def view_flag_submit(request):
if request.method == "POST":
form = forms.FlagForm(request.POST)
if form.is_valid():
return redirect("/")
else:
form = forms.FlagForm()
return render(request, "ctf/flag_submit.html", context={"form": form})