Skip to content
Snippets Groups Projects

A very simple base for an endpoint that displays basic stats

Merged Jan Maximilian Michal requested to merge statistics-endpoint into master
3 files
+ 22
1
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 20
0
@@ -4,6 +4,7 @@ user to be authenticated and most are only accessible by one user group """
import logging
from django.conf import settings
from django.db.models import Avg
from rest_framework import generics, mixins, viewsets
from rest_framework.decorators import api_view
from rest_framework.response import Response
@@ -84,6 +85,25 @@ class SubmissionTypeApiView(viewsets.ReadOnlyModelViewSet):
serializer_class = SubmissionTypeSerializer
class StatisticsEndpoint(viewsets.ViewSet):
def list(self, request, *args, **kwargs):
return Response({
'submissions_per_type':
models.SubmissionType.objects.first().submissions.count(),
'submissions_per_student':
models.SubmissionType.objects.count(),
'current_mean_score':
models.Feedback.objects.aggregate(avg=Avg('score')).get('avg', 0),
'submission_type_progress':
models.SubmissionType.get_annotated_feedback_count().values(
'feedback_count', 'pk', 'percentage')
})
class SubmissionViewSet(viewsets.ReadOnlyModelViewSet):
permission_classes = (IsTutorOrReviewer, )
serializer_class = SubmissionNoTypeSerializer
Loading