Commit ae37eedf by Bessie Steinberg Committed by Bill Filler

refactor milestone content get and clean up prereq language

parent a655d4f6
......@@ -104,10 +104,10 @@ from openedx.core.djangolib.markup import HTML, Text
% endif
</span>
% endif
% if subsection['id'] in milestones and not milestones[subsection['id']]['completed_prereqs']:
% if subsection['id'] in milestones:
<span class="subtitle">
<span class="subtitle-name">
Score of <em>${milestones[subsection['id']]['min_score']}</em> required on <em>${milestones[subsection['id']]['prereq']}</em> to access this content
Prerequisite: ${milestones[subsection['id']]['prereq']}
</span>
</span>
% endif
......
......@@ -25,6 +25,7 @@ class CourseOutlineFragmentView(EdxFragmentView):
"""
course_key = CourseKey.from_string(course_id)
course_overview = get_course_overview_with_access(request.user, 'load', course_key, check_if_enrolled=True)
# TODO: only generate all course blocks once
course_block_tree = get_course_outline_block_tree(request, course_id)
all_course_blocks = get_all_course_blocks(request, course_id)
......@@ -34,7 +35,6 @@ class CourseOutlineFragmentView(EdxFragmentView):
content_milestones = self.get_content_milestones(request, course_key, all_course_blocks)
context = {
'csrf': csrf(request)['csrf_token'],
'course': course_overview,
......@@ -45,42 +45,27 @@ class CourseOutlineFragmentView(EdxFragmentView):
return Fragment(html)
def get_content_milestones(self, request, course_key, all_course_blocks):
content_milestones = {}
#TODO: should i be using a user id here? probably
# course_prereqs = get_all_course_content_milestones(course_key, request.user.id) #, relationship='requires')
course_prereqs = get_all_course_content_milestones(
course_content_milestones = {}
all_course_prereqs = get_all_course_content_milestones(
course_key,
relationship='requires',
user_id=None) #MAYBE MAKE user_id none actually pass none in the method
user_id=None)
# TODO: try grabbing non userspecifc 'requires'
# TODO: try grabbing non userspecifc 'fulfills'
# TODO: try all all non user specific
# TODO: try user spefic requires
# TODO: try user spefic fulfills
# TODO: try user specific no relationship
unfulfilled_prereqs = get_course_content_milestones(
course_id=course_key,
unfulfilled_prereqs = get_all_course_content_milestones(
course_key,
relationship='requires',
user_id=request.user.id)
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,
'min_score': milestone['requirements']['min_score']
}
for milestone in all_course_prereqs:
course_content_milestones[ milestone['content_id'] ] = {
'completed_prereqs': True,
'min_score': milestone['requirements']['min_score'],
'prereq': all_course_blocks['blocks'][milestone['namespace'].replace('.gating', '')]['display_name']
}
for milestone in unfulfilled_prereqs:
content_milestones[milestone['content_id']]['completed_prereqs'] = False
content_milestones[milestone['content_id']]['prereq'] = all_course_blocks['blocks'][milestone['namespace'].replace('.gating','')]['display_name']
#TODO: can there be multiple prereqs?
course_content_milestones[milestone['content_id']]['completed_prereqs'] = False
return content_milestones
return course_content_milestones
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