post-game update prepare

This commit is contained in:
2025-08-21 20:03:37 +02:00
parent 946548d001
commit c710845288
2 changed files with 6 additions and 4 deletions
+3 -1
View File
@@ -1,4 +1,5 @@
from django.shortcuts import render from django.shortcuts import render
from django.db.models import Avg
from rest_framework.views import APIView from rest_framework.views import APIView
from rest_framework.response import Response from rest_framework.response import Response
from playlist.models import Session, Profile, Track, Vote from playlist.models import Session, Profile, Track, Vote
@@ -37,4 +38,5 @@ class SessionInfoView(APIView):
def get(self, request, session_id): def get(self, request, session_id):
track_count = len(Track.objects.all()) track_count = len(Track.objects.all())
vote_count = len(Vote.objects.all()) vote_count = len(Vote.objects.all())
return Response({'track_count': track_count, 'vote_count': vote_count}) average_vote = Vote.objects.all().aggregate(Avg("points", default=0))['points__avg']
return Response({'track_count': track_count, 'vote_count': vote_count, 'average_vote': average_vote})
+3 -3
View File
@@ -7,12 +7,14 @@ export default function PostGame() {
const { sessionId, setSessionId } = useSession(); const { sessionId, setSessionId } = useSession();
const [trackCount, setTrackCount] = useState(0); const [trackCount, setTrackCount] = useState(0);
const [voteCount, setVoteCount] = useState(0); const [voteCount, setVoteCount] = useState(0);
const [averageVote, setAverageVote] = useState(0);
async function getInfo() { async function getInfo() {
const { data: info } = await api.sessions.info({ session_id: sessionId }); const { data: info } = await api.sessions.info({ session_id: sessionId });
console.log(info); console.log(info);
setTrackCount(info["track_count"]); setTrackCount(info["track_count"]);
setVoteCount(info["vote_count"]); setVoteCount(info["vote_count"]);
setAverageVote(info["average_vote"]);
} }
useEffect(() => { useEffect(() => {
getInfo(); getInfo();
@@ -21,11 +23,9 @@ export default function PostGame() {
return ( return (
<main className="flex min-h-screen flex-col items-center justify-between p-24"> <main className="flex min-h-screen flex-col items-center justify-between p-24">
<h1>Post-game</h1> <h1>Post-game</h1>
<p>Bedankt voor het stemmen!</p>
<p>;)</p>
<p>Piemels</p>
<p>{trackCount} tracks</p> <p>{trackCount} tracks</p>
<p>{voteCount} votes</p> <p>{voteCount} votes</p>
<p>{averageVote} average vote</p>
</main> </main>
); );
} }