serializers.py 1.36 KB
Newer Older
1 2 3 4 5
""" Django REST Framework Serializers """

from django.core.urlresolvers import reverse
from rest_framework import serializers

6
from openedx.core.lib.courses import course_image_url
7 8 9 10 11 12 13


class CourseSerializer(serializers.Serializer):
    """ Serializer for Courses """
    id = serializers.CharField()  # pylint: disable=invalid-name
    name = serializers.CharField(source='display_name')
    category = serializers.CharField()
14 15 16 17 18
    org = serializers.SerializerMethodField()
    run = serializers.SerializerMethodField()
    course = serializers.SerializerMethodField()
    uri = serializers.SerializerMethodField()
    image_url = serializers.SerializerMethodField()
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
    start = serializers.DateTimeField()
    end = serializers.DateTimeField()

    def get_org(self, course):
        """ Gets the course org """
        return course.id.org

    def get_run(self, course):
        """ Gets the course run """
        return course.id.run

    def get_course(self, course):
        """ Gets the course """
        return course.id.course

    def get_uri(self, course):
        """ Builds course detail uri """
        request = self.context['request']
        return request.build_absolute_uri(reverse('course_structure_api:v0:detail', kwargs={'course_id': course.id}))

    def get_image_url(self, course):
        """ Get the course image URL """
        return course_image_url(course)