Skip to content

Commit 0c08184

Browse files
committed
Improve multilingual title formatting
Fixes apluslms#1116
1 parent 848cf9a commit 0c08184

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

lti_tool/views.py

+20-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from exercise.models import LearningObject, BaseExercise
1919
from exercise.views import ExerciseView, SubmissionView
2020
from userprofile.models import UserProfile
21+
from lib.localization_syntax import parse_localized
2122
from lib.viewbase import BaseTemplateView, BaseRedirectView, BaseMixin
2223
from authorization.permissions import ACCESS
2324
from .utils import get_tool_conf, get_launch_data_storage, get_launch_url
@@ -263,6 +264,15 @@ def post(self, request, *args, **kwargs):
263264
li.set_tag(str(e.id)).set_score_maximum(e.max_points).set_label(str(e))
264265
ags.find_or_create_lineitem(li)
265266

267+
parsed_languages = parse_localized(str(self.module))
268+
269+
# is multilingual
270+
if parsed_languages[0][0] is not None:
271+
# either in english, or whatever the default language is
272+
title = next((lang for lang in parsed_languages if lang[0] == 'en'), parsed_languages[0])[1]
273+
else:
274+
title = str(self.module)
275+
266276
# Send activity settings
267277
deep_link = self.message_launch.get_deep_link()
268278
resource = DeepLinkResource()
@@ -272,7 +282,7 @@ def post(self, request, *args, **kwargs):
272282
"instance_slug": kwargs['instance_slug'],
273283
"module_slug": kwargs['module_slug']
274284
})
275-
.set_title(str(self.module)))
285+
.set_title(title))
276286
return HttpResponse(deep_link.output_response_form([resource]))
277287

278288
# Get list of exercises in module
@@ -314,12 +324,20 @@ def post(self, request, *args, **kwargs):
314324
# Send activity settings
315325
deep_link = self.message_launch.get_deep_link()
316326
resource = DeepLinkResource()
327+
parsed_languages = parse_localized(str(self.exercise))
328+
329+
# is multilingual
330+
if parsed_languages[0][0] is not None:
331+
# either in english, or whatever the default language is
332+
title = next((lang for lang in parsed_languages if lang[0] == 'en'), parsed_languages[0])[1]
333+
else:
334+
title = str(self.exercise)
317335
(resource.set_url(request.build_absolute_uri(reverse('lti-launch')))
318336
.set_custom_params({
319337
"course_slug": kwargs['course_slug'],
320338
"instance_slug": kwargs['instance_slug'],
321339
"module_slug": kwargs['module_slug'],
322340
"exercise_path": kwargs['exercise_path']
323341
})
324-
.set_title(str(self.exercise)))
342+
.set_title(title))
325343
return HttpResponse(deep_link.output_response_form([resource]))

0 commit comments

Comments
 (0)