Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class CourseSettingsSerializer(serializers.Serializer):
is_entrance_exams_enabled = serializers.BooleanField()
is_prerequisite_courses_enabled = serializers.BooleanField()
language_options = serializers.ListField(child=serializers.ListField(child=serializers.CharField()))
topic_options = serializers.ListField(child=serializers.CharField())
lms_link_for_about_page = serializers.URLField()
licensing_enabled = serializers.BooleanField()
marketing_enabled = serializers.BooleanField()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,12 @@ def get(self, request: Request, course_id: str):

course_details = CourseDetails.fetch(course_key)
serializer = CourseDetailsSerializer(course_details)
return Response(serializer.data)

course_block = modulestore().get_course(course_key)
# Create a mutable copy and add the field
data = dict(serializer.data)
data['topic'] = course_block.other_course_settings.get('topic')
return Response(data)

@apidocs.schema(
body=CourseDetailsSerializer,
Expand Down
3 changes: 3 additions & 0 deletions cms/djangoapps/contentstore/rest_api/v1/views/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,8 @@ def get(self, request: Request, course_id: str):
}
```
"""
# Lazy import to avoid circular import
from openedx_wikilearn_features.wikimedia_general.utils import get_topics #pylint: disable=import-outside-toplevel
course_key = CourseKey.from_string(course_id)
if not has_studio_read_access(request.user, course_key):
self.permission_denied(request)
Expand All @@ -111,6 +113,7 @@ def get(self, request: Request, course_id: str):
'course_display_name_with_default': course_block.display_name_with_default,
'platform_name': settings.PLATFORM_NAME,
'licensing_enabled': settings.FEATURES.get("LICENSING", False),
'topic_options': get_topics(),
})

serializer = CourseSettingsSerializer(settings_context)
Expand Down
3 changes: 3 additions & 0 deletions openedx/core/djangoapps/models/course_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,9 @@ def update_from_json(cls, course_key, jsondict, user): # pylint: disable=too-ma

cls.update_about_video(block, jsondict['intro_video'], user.id)

# Lazy import to avoid circular import
from openedx_wikilearn_features.wikimedia_general.utils import update_other_course_settings #pylint: disable=import-outside-toplevel
update_other_course_settings({'topic': jsondict['topic']}, block, user)
# Could just return jsondict w/o doing any db reads, but I put
# the reads in as a means to confirm it persisted correctly
return CourseDetails.fetch(course_key)
Expand Down
Loading