Reduce query to user table
LEARNER-6336
This commit is contained in:
@@ -16,7 +16,7 @@ from openedx.features.enterprise_support.utils import get_enterprise_learner_gen
|
||||
self.real_user = getattr(user, 'real_user', user)
|
||||
profile_image_url = get_profile_image_urls_for_user(self.real_user)['medium']
|
||||
username = self.real_user.username
|
||||
resume_block = retrieve_last_sitewide_block_completed(username)
|
||||
resume_block = retrieve_last_sitewide_block_completed(self.real_user)
|
||||
displayname = get_enterprise_learner_generic_name(request) or username
|
||||
%>
|
||||
|
||||
|
||||
@@ -113,17 +113,16 @@ class CompletionUtilsTestCase(SharedModuleStoreTestCase, CompletionWaffleTestMix
|
||||
)
|
||||
|
||||
@override_settings(LMS_ROOT_URL='test_url:9999')
|
||||
@ddt.data(True, False)
|
||||
def test_retrieve_last_sitewide_block_completed(self, use_username):
|
||||
def test_retrieve_last_sitewide_block_completed(self):
|
||||
"""
|
||||
Test that the method returns a URL for the "last completed" block
|
||||
when sending a user object
|
||||
"""
|
||||
block_url = retrieve_last_sitewide_block_completed(
|
||||
self.engaged_user.username if use_username else self.engaged_user
|
||||
self.engaged_user
|
||||
)
|
||||
empty_block_url = retrieve_last_sitewide_block_completed(
|
||||
self.cruft_user.username if use_username else self.cruft_user
|
||||
self.cruft_user
|
||||
)
|
||||
self.assertEqual(
|
||||
block_url,
|
||||
|
||||
@@ -102,24 +102,20 @@ def _is_valid_social_username(value):
|
||||
return '/' not in value
|
||||
|
||||
|
||||
def retrieve_last_sitewide_block_completed(username):
|
||||
def retrieve_last_sitewide_block_completed(user):
|
||||
"""
|
||||
Completion utility
|
||||
From a string 'username' or object User retrieve
|
||||
the last course block marked as 'completed' and construct a URL
|
||||
|
||||
:param username: str(username) or obj(User)
|
||||
:param user: obj(User)
|
||||
:return: block_lms_url
|
||||
|
||||
"""
|
||||
if not completion_waffle.waffle().is_enabled(completion_waffle.ENABLE_COMPLETION_TRACKING):
|
||||
return
|
||||
|
||||
if not isinstance(username, User):
|
||||
userobj = User.objects.get(username=username)
|
||||
else:
|
||||
userobj = username
|
||||
latest_completions_by_course = BlockCompletion.latest_blocks_completed_all_courses(userobj)
|
||||
latest_completions_by_course = BlockCompletion.latest_blocks_completed_all_courses(user)
|
||||
|
||||
known_site_configs = [
|
||||
other_site_config.get_value('course_org_filter') for other_site_config in SiteConfiguration.objects.all()
|
||||
|
||||
@@ -27,7 +27,7 @@ class CookieTests(SharedModuleStoreTestCase):
|
||||
def _get_expected_header_urls(self, request):
|
||||
expected_header_urls = {
|
||||
'logout': reverse('logout'),
|
||||
'resume_block': retrieve_last_sitewide_block_completed(self.user.username)
|
||||
'resume_block': retrieve_last_sitewide_block_completed(self.user)
|
||||
}
|
||||
|
||||
# Studio (CMS) does not have the URLs below
|
||||
|
||||
Reference in New Issue
Block a user