Commit 4c77cbb2 by Bessie Steinberg Committed by Bill Filler

now it says when a subsection is gated

parent 9d6bbff0
......@@ -344,12 +344,41 @@ def add_course_content_milestone(course_id, content_id, relationship, milestone)
return milestones_api.add_course_content_milestone(course_id, content_id, relationship, milestone)
def get_course_content_milestones_by_course(course_id, relationship, user_id=None):
"""
Client API operation adapter/wrapper
Uses the request cache to store all of a user's
milestones
"""
#TODO: better name
if not settings.FEATURES.get('MILESTONES_APP'):
return []
if user_id is None:
return milestones_api.get_course_content_milestones(course_id, content_id, relationship)
request_cache_dict = request_cache.get_cache(REQUEST_CACHE_NAME)
if user_id not in request_cache_dict:
request_cache_dict[user_id] = {}
if relationship not in request_cache_dict[user_id]:
request_cache_dict[user_id][relationship] = milestones_api.get_course_content_milestones(
course_key=course_id,
relationship=relationship,
user={"id": user_id}
)
return request_cache_dict[user_id][relationship]
def get_course_content_milestones(course_id, content_id, relationship, user_id=None):
"""
Client API operation adapter/wrapper
Uses the request cache to store all of a user's
milestones
"""
#TODO: refactor and call get course content by course
if not settings.FEATURES.get('MILESTONES_APP'):
return []
......
......@@ -38,6 +38,11 @@ from openedx.core.djangolib.markup import HTML, Text
<span class="subsection-title">${ subsection['display_name'] }</span>
<div class="details">
% if subsection['id'] in milestones:
<span class="subtitle">
THIS IS GATED CONTENT!
</span>
% endif
## There are behavior differences between rendering of subsections which have
## exams (timed, graded, etc) and those that do not.
##
......
......@@ -11,7 +11,7 @@ from courseware.courses import get_course_overview_with_access
from openedx.core.djangoapps.plugin_api.views import EdxFragmentView
from ..utils import get_course_outline_block_tree
from util.milestones_helpers import get_course_content_milestones
from util.milestones_helpers import get_course_content_milestones, get_course_content_milestones_by_course
class CourseOutlineFragmentView(EdxFragmentView):
......@@ -33,25 +33,20 @@ class CourseOutlineFragmentView(EdxFragmentView):
if not course_block_tree:
return None
block_id_0 = course_block_tree.get('children')[0].get('children')[0].get('id')
prereq_0 = get_course_content_milestones(
milestones = get_course_content_milestones_by_course(
course_id=course_key,
content_id=block_id_0,
relationship='requires',
user_id=request.user.id)
block_id_1 = course_block_tree.get('children')[0].get('children')[1].get('id')
prereq_1 = get_course_content_milestones(
course_id=course_key,
content_id=block_id_1,
relationship='requires',
user_id=request.user.id)
content_block_milestones = []
for milestone in milestones:
content_block_milestones.append( milestone['content_id'] )
context = {
'csrf': csrf(request)['csrf_token'],
'course': course_overview,
'blocks': course_block_tree #,
# 'has_prereq': has_prereq
'blocks': course_block_tree,
'milestones': content_block_milestones
}
html = render_to_string('course_experience/course-outline-fragment.html', context)
return Fragment(html)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment