Browse Source

update admin panels quiz and courses

master
Mohsen Taba 1 month ago
parent
commit
d91e39459f
  1. 3
      apps/course/serializers/admin.py
  2. 6
      apps/course/views/admin.py
  3. 2
      apps/quiz/serializers/admin.py

3
apps/course/serializers/admin.py

@ -538,10 +538,11 @@ class AdminLiveSessionRecordingSerializer(serializers.ModelSerializer):
class AdminLiveSessionListSerializer(serializers.ModelSerializer): class AdminLiveSessionListSerializer(serializers.ModelSerializer):
course_title = serializers.SerializerMethodField() course_title = serializers.SerializerMethodField()
participant_count = serializers.SerializerMethodField() participant_count = serializers.SerializerMethodField()
media_count = serializers.IntegerField(read_only=True)
class Meta: class Meta:
model = CourseLiveSession 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): def get_course_title(self, obj):
if not obj.course: if not obj.course:

6
apps/course/views/admin.py

@ -1,7 +1,7 @@
import logging import logging
from django.db import transaction from django.db import transaction
from django.db.models import Q
from django.db.models import Count, Q
from django.utils import timezone from django.utils import timezone
from rest_framework import serializers, viewsets from rest_framework import serializers, viewsets
from rest_framework.permissions import IsAuthenticated from rest_framework.permissions import IsAuthenticated
@ -541,7 +541,9 @@ class AdminLiveSessionViewSet(viewsets.ModelViewSet):
return AdminLiveSessionDetailSerializer return AdminLiveSessionDetailSerializer
def get_queryset(self): 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 # Professors can only see live sessions of their own courses
if is_professor(self.request): if is_professor(self.request):

2
apps/quiz/serializers/admin.py

@ -118,7 +118,7 @@ class AdminQuizDetailSerializer(serializers.ModelSerializer):
'questions_count', 'questions_count',
'participants_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): def get_questions_count(self, obj):
return obj.questions.count() return obj.questions.count()

Loading…
Cancel
Save