From abccf1ee26b914617972761d07286572c72916d0 Mon Sep 17 00:00:00 2001 From: Thomas Tracy Date: Thu, 22 Jul 2021 13:33:14 -0400 Subject: [PATCH] [feat] Add enrollment mode to outline API (#28234) --- lms/djangoapps/course_home_api/outline/v1/serializers.py | 1 + lms/djangoapps/course_home_api/outline/v1/views.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/lms/djangoapps/course_home_api/outline/v1/serializers.py b/lms/djangoapps/course_home_api/outline/v1/serializers.py index ad09c693c1..5b59637f0a 100644 --- a/lms/djangoapps/course_home_api/outline/v1/serializers.py +++ b/lms/djangoapps/course_home_api/outline/v1/serializers.py @@ -121,6 +121,7 @@ class OutlineTabSerializer(DatesBannerSerializerMixin, VerifiedModeSerializerMix course_tools = CourseToolSerializer(many=True) dates_widget = DatesWidgetSerializer() enroll_alert = EnrollAlertSerializer() + enrollment_mode = serializers.CharField() handouts_html = serializers.CharField() has_ended = serializers.BooleanField() offer = serializers.DictField() diff --git a/lms/djangoapps/course_home_api/outline/v1/views.py b/lms/djangoapps/course_home_api/outline/v1/views.py index 5fee0b21e0..8da16e2290 100644 --- a/lms/djangoapps/course_home_api/outline/v1/views.py +++ b/lms/djangoapps/course_home_api/outline/v1/views.py @@ -134,6 +134,7 @@ class OutlineTabView(RetrieveAPIView): enroll_alert: can_enroll: (bool) Whether the user can enroll in the given course extra_text: (str) + enrollment_mode: (str) Current enrollment mode. Null if the user is not enrolled. handouts_html: (str) Raw HTML for the handouts section of the course info has_ended: (bool) Indicates whether course has ended offer: An object detailing upgrade discount information @@ -190,6 +191,7 @@ class OutlineTabView(RetrieveAPIView): course_overview = CourseOverview.get_from_id(course_key) enrollment = CourseEnrollment.get_enrollment(request.user, course_key) + enrollment_mode = getattr(enrollment, 'mode', None) allow_anonymous = COURSE_ENABLE_UNENROLLED_ACCESS_FLAG.is_enabled(course_key) allow_public = allow_anonymous and course.course_visibility == COURSE_VISIBILITY_PUBLIC allow_public_outline = allow_anonymous and course.course_visibility == COURSE_VISIBILITY_PUBLIC_OUTLINE @@ -329,6 +331,7 @@ class OutlineTabView(RetrieveAPIView): 'course_tools': course_tools, 'dates_widget': dates_widget, 'enroll_alert': enroll_alert, + 'enrollment_mode': enrollment_mode, 'handouts_html': handouts_html, 'has_ended': course.has_ended(), 'offer': offer_data,