Add "last completed block" to dropdown
This commit is contained in:
committed by
Sanford Student
parent
335bf4b035
commit
a5d8cbb8e9
@@ -8,10 +8,12 @@ import time
|
||||
|
||||
import six
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.urlresolvers import NoReverseMatch, reverse
|
||||
from django.dispatch import Signal
|
||||
from django.utils.http import cookie_date
|
||||
|
||||
from openedx.core.djangoapps.user_api.accounts.utils import retrieve_last_sitewide_block_completed
|
||||
from student.models import CourseEnrollment
|
||||
|
||||
CREATE_LOGON_COOKIE = Signal(providing_args=['user', 'response'])
|
||||
@@ -58,6 +60,8 @@ def set_logged_in_cookies(request, response, user):
|
||||
"username": "test-user",
|
||||
"header_urls": {
|
||||
"account_settings": "https://example.com/account/settings",
|
||||
"resume_block":
|
||||
"https://example.com//courses/org.0/course_0/Run_0/jump_to/i4x://org.0/course_0/vertical/vertical_4"
|
||||
"learner_profile": "https://example.com/u/test-user",
|
||||
"logout": "https://example.com/logout"
|
||||
}
|
||||
@@ -165,6 +169,12 @@ def get_user_info_cookie_data(request):
|
||||
except NoReverseMatch:
|
||||
pass
|
||||
|
||||
# Add 'resume course' last completed block
|
||||
try:
|
||||
header_urls['resume_block'] = retrieve_last_sitewide_block_completed(user)
|
||||
except User.DoesNotExist:
|
||||
pass
|
||||
|
||||
# Convert relative URL paths to absolute URIs
|
||||
for url_name, url_path in six.iteritems(header_urls):
|
||||
header_urls[url_name] = request.build_absolute_uri(url_path)
|
||||
|
||||
@@ -6,6 +6,7 @@ from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.test import RequestFactory
|
||||
|
||||
from openedx.core.djangoapps.user_api.accounts.utils import retrieve_last_sitewide_block_completed
|
||||
from student.cookies import get_user_info_cookie_data
|
||||
from student.models import CourseEnrollment
|
||||
from student.tests.factories import UserFactory
|
||||
@@ -26,6 +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)
|
||||
}
|
||||
|
||||
# Studio (CMS) does not have the URLs below
|
||||
|
||||
@@ -39,7 +39,7 @@ from util.milestones_helpers import (get_course_milestones,
|
||||
from util.testing import UrlResetMixin
|
||||
from xmodule.modulestore import ModuleStoreEnum
|
||||
from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase
|
||||
from xmodule.modulestore.tests.factories import CourseFactory
|
||||
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory
|
||||
|
||||
PASSWORD = 'test'
|
||||
|
||||
@@ -704,7 +704,11 @@ class StudentDashboardTests(SharedModuleStoreTestCase, MilestonesTestCaseMixin,
|
||||
|
||||
course_key = course.id
|
||||
block_keys = [
|
||||
course_key.make_usage_key('video', unicode(number))
|
||||
ItemFactory.create(
|
||||
category='video',
|
||||
parent_location=course.location,
|
||||
display_name='Video {0}'.format(unicode(number))
|
||||
).location
|
||||
for number in xrange(5)
|
||||
]
|
||||
|
||||
@@ -773,7 +777,11 @@ class StudentDashboardTests(SharedModuleStoreTestCase, MilestonesTestCaseMixin,
|
||||
# Submit completed course blocks in even-numbered courses.
|
||||
if isEven(i):
|
||||
block_keys = [
|
||||
course_key.make_usage_key('video', unicode(number))
|
||||
ItemFactory.create(
|
||||
category='video',
|
||||
parent_location=course.location,
|
||||
display_name='Video {0}'.format(unicode(number))
|
||||
).location
|
||||
for number in xrange(5)
|
||||
]
|
||||
last_completed_block_string = str(block_keys[-1])
|
||||
|
||||
Reference in New Issue
Block a user