You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

54 lines
1.4 KiB

from rest_framework import serializers
from progress.models import Progress, ProgressLesson
class ProgressSerializer(serializers.ModelSerializer):
lessons = serializers.SerializerMethodField()
class Meta:
model = Progress
fields = ('lessons', 'course_token')
@staticmethod
def get_lessons(self):
return [ProgressLessonSerializer(i).data for i in self.progresslesson_set.all()]
class ProgressAnalyticSerializer(serializers.ModelSerializer):
name = serializers.SerializerMethodField()
email = serializers.SerializerMethodField()
class Meta:
model = Progress
fields = ('name', 'email',)
@staticmethod
def get_name(self):
return self.user.get_full_name()
@staticmethod
def get_email(self):
return self.user.email
class ProgressLessonSerializer(serializers.ModelSerializer):
teacher = serializers.SerializerMethodField()
student = serializers.SerializerMethodField()
course_token = serializers.SerializerMethodField()
class Meta:
model = ProgressLesson
exclude = ('id', 'progress', 'checker')
@staticmethod
def get_teacher(self):
return self.checker.get_full_name()
@staticmethod
def get_student(self):
return self.progress.user.get_full_name()
@staticmethod
def get_course_token(self):
return self.progress.course_token