from uuid import UUID from django.http import HttpRequest, Http404 from django.shortcuts import render, get_object_or_404 from django.contrib.auth.decorators import login_required from events.models import Event from .models import Scope @login_required def submission_home(request: HttpRequest, event_path: str, game_path: str): # Unknown game, no scope assigned, auto-entering the only scope: all # handled by the frontend (SubmissionsSelect.vue) get_object_or_404(Event, path=event_path) return render(request, "app.html") @login_required def submission_view( request: HttpRequest, event_path: str, game_path: str, scope_id: UUID ): event = get_object_or_404(Event, path=event_path) scope = get_object_or_404( Scope.objects.select_related("event_game__game").prefetch_related( "assigned_users" ), id=scope_id, event_game__game__path=game_path, event_game__event=event, ) if ( not request.user.is_superuser and not scope.assigned_users.filter(pk=request.user.pk).exists() ): raise Http404 return render(request, "app.html")