From 287d84ba95a525ad86c908290f53e8f7029969af Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Thu, 27 Feb 2014 14:18:43 -0500 Subject: [PATCH] Fix youtube captions that disappeared with multi-language caption support [BLD-889] --- .../xmodule/video_module/video_module.py | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/common/lib/xmodule/xmodule/video_module/video_module.py b/common/lib/xmodule/xmodule/video_module/video_module.py index e75b7b4c46..0864ce18ac 100644 --- a/common/lib/xmodule/xmodule/video_module/video_module.py +++ b/common/lib/xmodule/xmodule/video_module/video_module.py @@ -245,21 +245,23 @@ class VideoModule(VideoFields, XModule): elif self.sub: track_url = self.runtime.handler_url(self, 'transcript').rstrip('/?') + '/download' - if self.transcript_language in self.transcripts: - transcript_language = self.transcript_language - elif self.sub: + if not self.transcripts: transcript_language = 'en' - elif self.transcripts: - transcript_language = self.transcripts.keys()[0] + languages = {'en': 'English'} else: - # this for the case, when for currently selected video, - # there are no translations and English subtitles are not set by instructor. - transcript_language = 'null' + if self.transcript_language in self.transcripts: + transcript_language = self.transcript_language + else: + transcript_language = self.transcripts.keys()[0] - all_languages = {i[0]: i[1] for i in settings.ALL_LANGUAGES} - languages = {lang: all_languages[lang] for lang in self.transcripts} - if self.sub: - languages.update({'en': 'English'}) + languages = { + lang: display + for lang, display in settings.ALL_LANGUAGES + if lang in self.transcripts + } + + if self.sub: + languages['en'] = 'English' # OrderedDict for easy testing of rendered context in tests transcript_languages = OrderedDict(sorted(languages.items(), key=itemgetter(1)))