34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
from django.shortcuts import render
|
|
from rest_framework.views import APIView
|
|
from rest_framework.response import Response
|
|
from playlist.models import Session, Profile, Track, Vote
|
|
from playlist.serializers import TrackSerializer, SessionSerializer
|
|
from drf_spectacular.utils import extend_schema
|
|
|
|
def index(request):
|
|
return render(request, 'voting/index.html')
|
|
|
|
def session(request, session_id):
|
|
return render(request, 'voting/session.html', {'room_name': session_id})
|
|
|
|
@extend_schema(
|
|
responses={200: SessionSerializer(many=True)},
|
|
description="Retrieve a list of all available sessions."
|
|
)
|
|
class SessionListView(APIView):
|
|
def get(self, request):
|
|
if request.user.is_superuser:
|
|
sessions = Session.objects.all()
|
|
else:
|
|
sessions = Session.objects.filter(voting_open=True)
|
|
return Response(SessionSerializer(sessions, many=True).data)
|
|
|
|
@extend_schema(
|
|
responses={200: SessionSerializer()},
|
|
description="Gets session details."
|
|
)
|
|
class SessionDetailView(APIView):
|
|
def get(self, request, session_id):
|
|
session = Session.objects.get(session_id=session_id)
|
|
return Response(SessionSerializer(session).data)
|