Files
edx-platform/lms/djangoapps/grades/api/serializers.py
Nimisha Asthagiri dea4147232 Grading Policy endpoint in Grades API
This copies the grading policy endpoint currently in the
course_structures django app to its new location, in preparation
to remove the old app.

TNL-5701
2016-10-12 11:43:12 -04:00

30 lines
938 B
Python

"""
API Serializers
"""
from collections import defaultdict
from rest_framework import serializers
# pylint: disable=abstract-method
class GradingPolicySerializer(serializers.Serializer):
"""
Serializer for course grading policy.
"""
assignment_type = serializers.CharField(source='type')
count = serializers.IntegerField(source='min_count')
dropped = serializers.IntegerField(source='drop_count')
weight = serializers.FloatField()
def to_representation(self, obj):
"""
Return a representation of the grading policy.
"""
# Backwards compatibility with the behavior of DRF v2.
# When the grader dictionary was missing keys, DRF v2 would default to None;
# DRF v3 unhelpfully raises an exception.
return dict(
super(GradingPolicySerializer, self).to_representation(
defaultdict(lambda: None, obj)
)
)