Unify the home and course tabs

LEARNER-609
This commit is contained in:
Andy Armstrong
2017-04-27 16:17:49 -04:00
parent b10c71d890
commit 2167584e5e
14 changed files with 120 additions and 64 deletions

View File

@@ -13,9 +13,9 @@ from django.views.decorators.csrf import ensure_csrf_cookie
from django.views.generic import View
from courseware.courses import get_course_with_access
from lms.djangoapps.courseware.tabs import CoursewareTab
from opaque_keys.edx.keys import CourseKey
from openedx.core.djangoapps.plugin_api.views import EdxFragmentView
from openedx.features.course_experience import defaut_course_url_name
from util.views import ensure_valid_course_key
from web_fragments.fragment import Fragment
@@ -38,7 +38,7 @@ class CourseBookmarksView(View):
"""
course_key = CourseKey.from_string(course_id)
course = get_course_with_access(request.user, 'load', course_key, check_if_enrolled=True)
course_url_name = CoursewareTab.main_course_url_name(request)
course_url_name = defaut_course_url_name(request)
course_url = reverse(course_url_name, kwargs={'course_id': unicode(course.id)})
# Render the bookmarks list as a fragment

View File

@@ -1,4 +1,10 @@
# Unified course experience settings.
"""
Unified course experience settings and helper methods.
"""
import waffle
from request_cache.middleware import RequestCache
# Waffle flag to enable a single unified "Course" tab.
UNIFIED_COURSE_EXPERIENCE_FLAG = 'unified_course_experience'
@@ -6,3 +12,23 @@ UNIFIED_COURSE_EXPERIENCE_FLAG = 'unified_course_experience'
# Waffle flag to enable the full screen course content view
# along with a unified course home page.
UNIFIED_COURSE_VIEW_FLAG = 'unified_course_view'
def defaut_course_url_name(request=None):
"""
Returns the default course URL name for the current user.
"""
if waffle.flag_is_active(request or RequestCache.get_current_request(), UNIFIED_COURSE_VIEW_FLAG):
return 'openedx.course_experience.course_home'
else:
return 'courseware'
def course_home_url_name(request=None):
"""
Returns the course home page's URL name for the current user.
"""
if waffle.flag_is_active(request or RequestCache.get_current_request(), UNIFIED_COURSE_EXPERIENCE_FLAG):
return 'openedx.course_experience.course_home'
else:
return 'info'

View File

@@ -10,10 +10,10 @@ from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_control
from courseware.courses import get_course_info_section, get_course_with_access
from lms.djangoapps.courseware.tabs import CoursewareTab
from lms.djangoapps.courseware.views.views import CourseTabView
from opaque_keys.edx.keys import CourseKey
from openedx.core.djangoapps.plugin_api.views import EdxFragmentView
from openedx.features.course_experience import defaut_course_url_name
from web_fragments.fragment import Fragment
@@ -45,7 +45,7 @@ class CourseUpdatesFragmentView(EdxFragmentView):
"""
course_key = CourseKey.from_string(course_id)
course = get_course_with_access(request.user, 'load', course_key, check_if_enrolled=True)
course_url_name = CoursewareTab.main_course_url_name(request)
course_url_name = defaut_course_url_name(request)
course_url = reverse(course_url_name, kwargs={'course_id': unicode(course.id)})
# Fetch the updates as HTML