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 ...@@ -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)] 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): 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. 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 ...@@ -40,7 +40,7 @@ from openedx.core.djangolib.markup import HTML, Text
${ subsection['display_name'] } ${ subsection['display_name'] }
</span> </span>
% if subsection['id'] in milestones: % 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"> aria-hidden="true">
</span> </span>
% endif % endif
......
...@@ -11,7 +11,7 @@ from courseware.courses import get_course_overview_with_access ...@@ -11,7 +11,7 @@ from courseware.courses import get_course_overview_with_access
from openedx.core.djangoapps.plugin_api.views import EdxFragmentView from openedx.core.djangoapps.plugin_api.views import EdxFragmentView
from ..utils import get_course_outline_block_tree 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): class CourseOutlineFragmentView(EdxFragmentView):
...@@ -30,25 +30,32 @@ class CourseOutlineFragmentView(EdxFragmentView): ...@@ -30,25 +30,32 @@ class CourseOutlineFragmentView(EdxFragmentView):
if not course_block_tree: if not course_block_tree:
return None 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, course_id=course_key,
relationship='requires', relationship='requires',
user_id=request.user.id) user_id=request.user.id)
content_block_milestones = {} for milestone in course_prereqs:
for milestone in milestones: # check that its a 'requires' relationship
content_block_milestones[ milestone['content_id'] ] = { # TODO: just grab the 'requires' milestones from the database
'completed_prereqs': False 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 = { context = {
'csrf': csrf(request)['csrf_token'], 'csrf': csrf(request)['csrf_token'],
'course': course_overview, 'course': course_overview,
'blocks': course_block_tree, 'blocks': course_block_tree,
'milestones': content_block_milestones 'milestones': content_milestones
} }
html = render_to_string('course_experience/course-outline-fragment.html', context) html = render_to_string('course_experience/course-outline-fragment.html', context)
return Fragment(html) 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