From ea9da5aa07f8fe56c9202667786a3034c533390d Mon Sep 17 00:00:00 2001 From: Jesse Shapiro <jesse@jesseshapiro.net> Date: Mon, 6 Jun 2016 11:51:59 -0400 Subject: [PATCH] Switching to use the language user preference; updating to v1.0.9 --- lti_consumer/lti.py | 7 ++++++- lti_consumer/tests/unit/test_lti.py | 3 +-- setup.py | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lti_consumer/lti.py b/lti_consumer/lti.py index d0871ba..0e2ca63 100644 --- a/lti_consumer/lti.py +++ b/lti_consumer/lti.py @@ -152,7 +152,12 @@ class LtiConsumer(object): real_user_object = self.xblock.runtime.get_real_user(self.xblock.runtime.anonymous_student_id) self.xblock.user_email = getattr(real_user_object, "email", "") self.xblock.user_username = getattr(real_user_object, "username", "") - self.xblock.user_language = getattr(getattr(real_user_object, "profile", ""), "language", "") + user_preferences = getattr(real_user_object, "preferences", None) + + if user_preferences is not None: + language_preference = user_preferences.filter(key='pref-lang') + if len(language_preference) == 1: + self.xblock.user_language = language_preference[0].value if self.xblock.ask_to_send_username and self.xblock.user_username: lti_parameters["lis_person_sourcedid"] = self.xblock.user_username diff --git a/lti_consumer/tests/unit/test_lti.py b/lti_consumer/tests/unit/test_lti.py index a7bdb7f..48ab03f 100644 --- a/lti_consumer/tests/unit/test_lti.py +++ b/lti_consumer/tests/unit/test_lti.py @@ -181,11 +181,10 @@ class TestLtiConsumer(TestLtiConsumerXBlock): self.lti_consumer.xblock.has_score = True self.lti_consumer.xblock.ask_to_send_username = True self.lti_consumer.xblock.ask_to_send_email = True - self.lti_consumer.xblock.runtime.get_real_user.return_value = Mock( email='edx@example.com', username='edx', - profile=Mock(language='en') + preferences=Mock(filter=Mock(return_value=[Mock(value='en')])) ) self.assertEqual(self.lti_consumer.get_signed_lti_parameters(), expected_lti_parameters) diff --git a/setup.py b/setup.py index a9602ac..e6b1329 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ def package_data(pkg, roots): setup( name='lti_consumer-xblock', - version='1.0.7', + version='1.0.9', description='This XBlock implements the consumer side of the LTI specification.', packages=[ 'lti_consumer', -- GitLab