Skip to content

Commit 782726e

Browse files
match front-end
1 parent 7df87db commit 782726e

File tree

3 files changed

+28
-11
lines changed

3 files changed

+28
-11
lines changed

classroom/business/all/student_report.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ def __init__(self, classroom, student):
66
self.classroom = classroom
77
self.student = student
88

9-
def make(self):
9+
def make(self, exercise_pk=None, detail=True):
1010
reports = []
1111
exercises = self.get_exercises()
1212

1313
for exercise in exercises:
14+
if exercise_pk and exercise_pk != exercise.pk:
15+
continue
16+
1417
report = self.new_report(exercise)
1518
submission = self.get_submission(exercise)
1619

@@ -34,6 +37,11 @@ def make(self):
3437
)
3538
report['band_score'] = self.calculate_band(report['total'])
3639

40+
if not detail:
41+
del report['passage_1_detail']
42+
del report['passage_2_detail']
43+
del report['passage_3_detail']
44+
3745
reports.append(report)
3846

3947
return reports

classroom/serializers/classroom.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,6 @@ class RemoveReadingExerciseSerializer(serializers.Serializer):
6161
pk = serializers.IntegerField()
6262

6363

64-
class _PassageDetailSerializer(serializers.Serializer):
65-
question_number = serializers.IntegerField()
66-
submitted_answer = serializers.CharField()
67-
possible_answers = serializers.ListField(child=serializers.CharField())
68-
is_correct = serializers.BooleanField()
69-
70-
7164
class _ExerciseSerializer(serializers.HyperlinkedModelSerializer):
7265
class Meta:
7366
model = ReadingExercise
@@ -77,8 +70,18 @@ class Meta:
7770
}
7871

7972

73+
class _PassageDetailSerializer(serializers.Serializer):
74+
question_number = serializers.IntegerField()
75+
submitted_answer = serializers.CharField()
76+
possible_answers = serializers.ListField(child=serializers.CharField())
77+
is_correct = serializers.BooleanField()
78+
79+
8080
class StudentReadingReportSerializer(serializers.Serializer):
81-
student = serializers.IntegerField(write_only=True)
81+
student_pk = serializers.IntegerField(write_only=True)
82+
exercise_pk = serializers.IntegerField(write_only=True, required=False)
83+
show_detail = serializers.BooleanField(write_only=True, default=True)
84+
8285
exercise = _ExerciseSerializer(read_only=True)
8386
passage_1_total = serializers.IntegerField(read_only=True)
8487
passage_2_total = serializers.IntegerField(read_only=True)

classroom/views/classroom.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,15 @@ def remove_reading_exercises(self, request, pk):
9999
def student_reading_report(self, request, pk):
100100
serializer = self.get_serializer(data=request.query_params)
101101
serializer.is_valid(raise_exception=True)
102+
103+
student_pk = serializer.validated_data['student_pk']
104+
exercise_pk = serializer.validated_data.get('exercise_pk')
105+
show_detail = serializer.validated_data['show_detail']
106+
102107
classroom = self.get_object()
103-
student = get_object_or_404(User.students.all(), pk=serializer.validated_data['student'])
108+
student = get_object_or_404(User.students.all(), pk=student_pk)
104109
report_maker = ReadingReportMaker(classroom, student)
105-
report = report_maker.make()
110+
report = report_maker.make(exercise_pk=exercise_pk, detail=show_detail)
111+
106112
serializer = self.get_serializer(instance=report, many=True)
107113
return Response(serializer.data)

0 commit comments

Comments
 (0)