diff --git a/apps/course/serializers/admin.py b/apps/course/serializers/admin.py index 12ba985..abe3921 100644 --- a/apps/course/serializers/admin.py +++ b/apps/course/serializers/admin.py @@ -538,10 +538,11 @@ class AdminLiveSessionRecordingSerializer(serializers.ModelSerializer): class AdminLiveSessionListSerializer(serializers.ModelSerializer): course_title = serializers.SerializerMethodField() participant_count = serializers.SerializerMethodField() + media_count = serializers.IntegerField(read_only=True) class Meta: model = CourseLiveSession - fields = ['id', 'course', 'course_title', 'room_id', 'subject', 'started_at', 'ended_at', 'participant_count', 'created_at'] + fields = ['id', 'course', 'course_title', 'room_id', 'subject', 'started_at', 'ended_at', 'participant_count', 'media_count', 'created_at'] def get_course_title(self, obj): if not obj.course: diff --git a/apps/course/views/admin.py b/apps/course/views/admin.py index 9f5810f..2b42ef3 100644 --- a/apps/course/views/admin.py +++ b/apps/course/views/admin.py @@ -1,7 +1,7 @@ import logging from django.db import transaction -from django.db.models import Q +from django.db.models import Count, Q from django.utils import timezone from rest_framework import serializers, viewsets from rest_framework.permissions import IsAuthenticated @@ -541,7 +541,9 @@ class AdminLiveSessionViewSet(viewsets.ModelViewSet): return AdminLiveSessionDetailSerializer def get_queryset(self): - queryset = CourseLiveSession.objects.all().select_related('course') + queryset = CourseLiveSession.objects.all().select_related('course').annotate( + media_count=Count('recordings', distinct=True) + ) # Professors can only see live sessions of their own courses if is_professor(self.request): diff --git a/apps/quiz/serializers/admin.py b/apps/quiz/serializers/admin.py index 32e8512..4962329 100644 --- a/apps/quiz/serializers/admin.py +++ b/apps/quiz/serializers/admin.py @@ -118,7 +118,7 @@ class AdminQuizDetailSerializer(serializers.ModelSerializer): 'questions_count', 'participants_count' ] - read_only_fields = ['course', 'course_title', 'lesson_title', 'questions_count', 'participants_count'] + read_only_fields = ['course_title', 'lesson_title', 'questions_count', 'participants_count'] def get_questions_count(self, obj): return obj.questions.count()