Skip to content

Commit 833b96a

Browse files
authored
Merge pull request #674 from CruiseDevice/API
Update Yaksh API
2 parents 53a0c4a + 2fd29bf commit 833b96a

File tree

14 files changed

+1500
-4
lines changed

14 files changed

+1500
-4
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ script:
2929
- coverage run -p manage.py test -v 2 yaksh
3030
- coverage run -p manage.py test -v 2 grades
3131
- coverage run -p manage.py test -v 2 yaksh.live_server_tests.load_test
32+
- coverage run -p manage.py test -v 2 api
3233

3334
after_success:
3435
- coverage combine

api/__init__.py

Whitespace-only changes.

api/apps.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from django.apps import AppConfig
2+
3+
4+
class ApiConfig(AppConfig):
5+
name = 'api'

api/serializers.py

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
from rest_framework import serializers
2+
from yaksh.models import (
3+
Question, Quiz, QuestionPaper, AnswerPaper, Course,
4+
LearningModule, LearningUnit, Lesson
5+
)
6+
7+
8+
class QuestionSerializer(serializers.ModelSerializer):
9+
test_cases = serializers.SerializerMethodField()
10+
11+
def get_test_cases(self, obj):
12+
test_cases = obj.get_test_cases_as_dict()
13+
return test_cases
14+
15+
class Meta:
16+
model = Question
17+
exclude = ('partial_grading', )
18+
19+
20+
class QuizSerializer(serializers.ModelSerializer):
21+
class Meta:
22+
model = Quiz
23+
exclude = ('view_answerpaper', )
24+
25+
26+
class QuestionPaperSerializer(serializers.ModelSerializer):
27+
class Meta:
28+
model = QuestionPaper
29+
fields = '__all__'
30+
31+
32+
class AnswerPaperSerializer(serializers.ModelSerializer):
33+
34+
questions = QuestionSerializer(many=True)
35+
36+
class Meta:
37+
model = AnswerPaper
38+
fields = '__all__'
39+
40+
41+
class LessonSerializer(serializers.ModelSerializer):
42+
class Meta:
43+
model = Lesson
44+
fields = '__all__'
45+
46+
47+
class LearningUnitSerializer(serializers.ModelSerializer):
48+
49+
quiz = QuizSerializer()
50+
lesson = LessonSerializer()
51+
52+
class Meta:
53+
model = LearningUnit
54+
fields = '__all__'
55+
56+
57+
class LearningModuleSerializer(serializers.ModelSerializer):
58+
59+
learning_unit = LearningUnitSerializer(many=True)
60+
61+
class Meta:
62+
model = LearningModule
63+
fields = '__all__'
64+
65+
66+
class CourseSerializer(serializers.ModelSerializer):
67+
68+
learning_module = LearningModuleSerializer(many=True)
69+
70+
class Meta:
71+
model = Course
72+
exclude = (
73+
'teachers',
74+
'rejected',
75+
'requests',
76+
'students',
77+
'grading_system',
78+
'view_grade',
79+
)

0 commit comments

Comments
 (0)