Commit 257a63de by Bessie Steinberg Committed by Bill Filler

add lock and unlock icons to subsections that require prereqs depending on…

add lock and unlock icons to subsections that require prereqs depending on whether the prereq has been met or not
parent 328b8fc9
......@@ -399,6 +399,9 @@ def get_course_content_milestones(course_id, content_id, relationship, user_id=N
return [m for m in request_cache_dict[user_id][relationship] if m['content_id'] == unicode(content_id)]
def get_all_course_content_milestones(course_key, relationship=None):
return milestones_api.get_course_content_milestones(course_key, relationship)
def remove_course_content_user_milestones(course_key, content_key, user, relationship):
"""
Removes the specified User-Milestone link from the system for the specified course content module.
......
......@@ -40,7 +40,7 @@ from openedx.core.djangolib.markup import HTML, Text
${ subsection['display_name'] }
</span>
% if subsection['id'] in milestones:
<span class="menu-icon icon fa ${ 'fa-lock' if milestones[subsection['id']]['completed_prereqs'] else 'fa-unlock' }"
<span class="menu-icon icon fa ${ 'fa-unlock' if milestones[subsection['id']]['completed_prereqs'] else 'fa-lock' }"
aria-hidden="true">
</span>
% endif
......
......@@ -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_by_course, milestones_achieved_by_user
from util.milestones_helpers import get_all_course_content_milestones, get_course_content_milestones_by_course, milestones_achieved_by_user, get_course_content_milestones
class CourseOutlineFragmentView(EdxFragmentView):
......@@ -30,25 +30,32 @@ class CourseOutlineFragmentView(EdxFragmentView):
if not course_block_tree:
return None
completed_milestones = milestones_achieved_by_user(request.user, course_id)
content_milestones = {}
course_prereqs = get_all_course_content_milestones(course_key) #, relationship='requires')
milestones = get_course_content_milestones_by_course(
unfulfilled_prereqs = get_course_content_milestones_by_course(
course_id=course_key,
relationship='requires',
user_id=request.user.id)
content_block_milestones = {}
for milestone in milestones:
content_block_milestones[ milestone['content_id'] ] = {
'completed_prereqs': False
}
for milestone in course_prereqs:
# check that its a 'requires' relationship
# TODO: just grab the 'requires' milestones from the database
if milestone['requirements']:
content_milestones[ milestone['content_id'] ] = {
'completed_prereqs': True
}
for milestone in unfulfilled_prereqs:
content_milestones[ milestone['content_id'] ]['completed_prereqs'] = False
context = {
'csrf': csrf(request)['csrf_token'],
'course': course_overview,
'blocks': course_block_tree,
'milestones': content_block_milestones
'milestones': content_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