summaryrefslogtreecommitdiff
path: root/api/serializers.py
diff options
context:
space:
mode:
authorPalaparthy Adityachandra2020-04-30 17:39:44 +0530
committerGitHub2020-04-30 17:39:44 +0530
commit833b96ac49499810934ada8ba02750623455d0cd (patch)
tree16d974b5a5e1effaf15be2235813dca4108c4f29 /api/serializers.py
parent53a0c4ad3e733f3960000527f83565f2fd8fc412 (diff)
parent2fd29bf1fff3d57a49b8a5cdffa9efc305946214 (diff)
downloadonline_test-833b96ac49499810934ada8ba02750623455d0cd.tar.gz
online_test-833b96ac49499810934ada8ba02750623455d0cd.tar.bz2
online_test-833b96ac49499810934ada8ba02750623455d0cd.zip
Merge pull request #674 from CruiseDevice/API
Update Yaksh API
Diffstat (limited to 'api/serializers.py')
-rw-r--r--api/serializers.py79
1 files changed, 79 insertions, 0 deletions
diff --git a/api/serializers.py b/api/serializers.py
new file mode 100644
index 0000000..1c1e6a4
--- /dev/null
+++ b/api/serializers.py
@@ -0,0 +1,79 @@
+from rest_framework import serializers
+from yaksh.models import (
+ Question, Quiz, QuestionPaper, AnswerPaper, Course,
+ LearningModule, LearningUnit, Lesson
+)
+
+
+class QuestionSerializer(serializers.ModelSerializer):
+ test_cases = serializers.SerializerMethodField()
+
+ def get_test_cases(self, obj):
+ test_cases = obj.get_test_cases_as_dict()
+ return test_cases
+
+ class Meta:
+ model = Question
+ exclude = ('partial_grading', )
+
+
+class QuizSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = Quiz
+ exclude = ('view_answerpaper', )
+
+
+class QuestionPaperSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = QuestionPaper
+ fields = '__all__'
+
+
+class AnswerPaperSerializer(serializers.ModelSerializer):
+
+ questions = QuestionSerializer(many=True)
+
+ class Meta:
+ model = AnswerPaper
+ fields = '__all__'
+
+
+class LessonSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = Lesson
+ fields = '__all__'
+
+
+class LearningUnitSerializer(serializers.ModelSerializer):
+
+ quiz = QuizSerializer()
+ lesson = LessonSerializer()
+
+ class Meta:
+ model = LearningUnit
+ fields = '__all__'
+
+
+class LearningModuleSerializer(serializers.ModelSerializer):
+
+ learning_unit = LearningUnitSerializer(many=True)
+
+ class Meta:
+ model = LearningModule
+ fields = '__all__'
+
+
+class CourseSerializer(serializers.ModelSerializer):
+
+ learning_module = LearningModuleSerializer(many=True)
+
+ class Meta:
+ model = Course
+ exclude = (
+ 'teachers',
+ 'rejected',
+ 'requests',
+ 'students',
+ 'grading_system',
+ 'view_grade',
+ )