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