Skip to content

Commit

Permalink
feat: add util method in edx-val for listing transcript_languages for…
Browse files Browse the repository at this point in the history
… a course
  • Loading branch information
AfaqShuaib09 committed Feb 17, 2025
1 parent b7c5db6 commit 6874160
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
2 changes: 1 addition & 1 deletion edxval/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
init
"""

__version__ = '2.9.0'
__version__ = '2.9.1'
23 changes: 23 additions & 0 deletions edxval/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -733,6 +733,29 @@ def get_videos_for_course(course_id, sort_field=None, sort_dir=SortDirection.asc
)


def get_transcript_languages(course_id, provider_type):
"""
Returns a list of languages for which transcripts are available for a course
Args:
course_id (str): course id
provider_type (str): transcript provider type
Returns:
(list): A list of language codes
"""
transcript_languages = set()
video_transcripts = VideoTranscript.objects.filter(
video__edx_video_id__in=CourseVideo.objects.filter(
course_id=course_id
).values_list("video__edx_video_id", flat=True)
).select_related("video")
for transcript in video_transcripts:
if transcript.provider == provider_type:
transcript_languages.add(transcript.language_code)
return list(transcript_languages)


def get_course_videos_qset(course_id):
"""
Get a QuerySet of CourseVideos for a given course.
Expand Down
10 changes: 10 additions & 0 deletions edxval/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3189,6 +3189,16 @@ def test_get_transcript_details_for_course_no_course_videos(self):

self.assertEqual(len(course_transcript), 0)

def test_get_transcript_languages_for_course(self):
"""
Verify that `get_transcript_languages` api function works as expected.
"""
transcript_languages = api.get_transcript_languages(self.course_id1, TranscriptProviderType.THREE_PLAY_MEDIA)
self.assertEqual(transcript_languages, ['en'])

transcript_languages = api.get_transcript_languages(self.course_id1, TranscriptProviderType.CIELO24)
self.assertEqual(transcript_languages, ['fr'])


@ddt
class TranscriptPreferencesTest(TestCase):
Expand Down

0 comments on commit 6874160

Please sign in to comment.