diff --git a/lms/djangoapps/course_home_api/course_metadata/v1/serializers.py b/lms/djangoapps/course_home_api/course_metadata/v1/serializers.py index e491d8ad75..d012390bdf 100644 --- a/lms/djangoapps/course_home_api/course_metadata/v1/serializers.py +++ b/lms/djangoapps/course_home_api/course_metadata/v1/serializers.py @@ -36,3 +36,4 @@ class CourseHomeMetadataSerializer(serializers.Serializer): tabs = CourseTabSerializer(many=True) title = serializers.CharField() is_self_paced = serializers.BooleanField() + is_enrolled = serializers.BooleanField() diff --git a/lms/djangoapps/course_home_api/course_metadata/v1/views.py b/lms/djangoapps/course_home_api/course_metadata/v1/views.py index ce50fed964..a9ca215e5a 100644 --- a/lms/djangoapps/course_home_api/course_metadata/v1/views.py +++ b/lms/djangoapps/course_home_api/course_metadata/v1/views.py @@ -8,6 +8,7 @@ from rest_framework.response import Response from opaque_keys.edx.keys import CourseKey +from student.models import CourseEnrollment from lms.djangoapps.courseware.access import has_access from lms.djangoapps.courseware.tabs import get_course_tab_list from lms.djangoapps.course_api.api import course_detail @@ -29,6 +30,8 @@ class CourseHomeMetadataView(RetrieveAPIView): Body consists of the following fields: course_id: (str) The Course's id (Course Run key) + is_enrolled: (bool) Indicates if the user is enrolled in the course + is_self_paced: (bool) Indicates if the course is self paced is_staff: (bool) Indicates if the user is staff number: (str) The Course's number org: (str) The Course's organization @@ -50,6 +53,8 @@ class CourseHomeMetadataView(RetrieveAPIView): course_key_string = kwargs.get('course_key_string') course_key = CourseKey.from_string(course_key_string) course = course_detail(request, request.user.username, course_key) + user_is_enrolled = CourseEnrollment.is_enrolled(request.user, course_key_string) + data = { 'course_id': course.id, 'is_staff': has_access(request.user, 'staff', course_key).has_access, @@ -58,6 +63,7 @@ class CourseHomeMetadataView(RetrieveAPIView): 'tabs': get_course_tab_list(request.user, course), 'title': course.display_name_with_default, 'is_self_paced': getattr(course, 'self_paced', False), + 'is_enrolled': user_is_enrolled, } context = self.get_serializer_context() context['course'] = course