Merge pull request #12945 from edx/kkim/ora_tz_date

Convert ORA Due Dates
This commit is contained in:
Kevin Kim
2016-07-21 10:52:07 -04:00
committed by GitHub
7 changed files with 37 additions and 9 deletions

View File

@@ -8,10 +8,13 @@ from xblock_django.user_service import (
ATTR_KEY_USER_ID,
ATTR_KEY_USERNAME,
ATTR_KEY_USER_IS_STAFF,
ATTR_KEY_USER_PREFERENCES,
USER_PREFERENCES_WHITE_LIST,
)
from student.models import anonymous_id_for_user
from student.tests.factories import UserFactory, AnonymousUserFactory
from opaque_keys.edx.keys import CourseKey
from openedx.core.djangoapps.user_api.preferences.api import set_user_preference
class UserServiceTestCase(TestCase):
@@ -22,6 +25,9 @@ class UserServiceTestCase(TestCase):
super(UserServiceTestCase, self).setUp()
self.user = UserFactory(username="tester", email="test@tester.com")
self.user.profile.name = "Test Tester"
set_user_preference(self.user, 'pref-lang', 'en')
set_user_preference(self.user, 'time_zone', 'US/Pacific')
set_user_preference(self.user, 'not_white_listed', 'hidden_value')
self.anon_user = AnonymousUserFactory()
def assert_is_anon_xb_user(self, xb_user):
@@ -42,6 +48,12 @@ class UserServiceTestCase(TestCase):
self.assertEqual(xb_user.opt_attrs[ATTR_KEY_USERNAME], dj_user.username)
self.assertEqual(xb_user.opt_attrs[ATTR_KEY_USER_ID], dj_user.id)
self.assertFalse(xb_user.opt_attrs[ATTR_KEY_USER_IS_STAFF])
self.assertTrue(
all(
pref in USER_PREFERENCES_WHITE_LIST
for pref in xb_user.opt_attrs[ATTR_KEY_USER_PREFERENCES]
)
)
def test_convert_anon_user(self):
"""

View File

@@ -3,13 +3,16 @@ Support for converting a django user to an XBlock user
"""
from django.contrib.auth.models import User
from opaque_keys.edx.keys import CourseKey
from xblock.reference.user_service import XBlockUser, UserService
from openedx.core.djangoapps.user_api.preferences.api import get_user_preferences
from student.models import anonymous_id_for_user, get_user_by_username_or_email
from xblock.reference.user_service import XBlockUser, UserService
ATTR_KEY_IS_AUTHENTICATED = 'edx-platform.is_authenticated'
ATTR_KEY_USER_ID = 'edx-platform.user_id'
ATTR_KEY_USERNAME = 'edx-platform.username'
ATTR_KEY_USER_IS_STAFF = 'edx-platform.user_is_staff'
ATTR_KEY_USER_PREFERENCES = 'edx-platform.user_preferences'
USER_PREFERENCES_WHITE_LIST = ['pref-lang', 'time_zone']
class DjangoXBlockUserService(UserService):
@@ -69,6 +72,12 @@ class DjangoXBlockUserService(UserService):
xblock_user.opt_attrs[ATTR_KEY_USER_ID] = django_user.id
xblock_user.opt_attrs[ATTR_KEY_USERNAME] = django_user.username
xblock_user.opt_attrs[ATTR_KEY_USER_IS_STAFF] = django_user.user_is_staff
user_preferences = get_user_preferences(django_user)
xblock_user.opt_attrs[ATTR_KEY_USER_PREFERENCES] = {
pref: user_preferences.get(pref)
for pref in USER_PREFERENCES_WHITE_LIST
if pref in user_preferences
}
else:
xblock_user.opt_attrs[ATTR_KEY_IS_AUTHENTICATED] = False