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 ...@@ -104,10 +104,10 @@ from openedx.core.djangolib.markup import HTML, Text
% endif % endif
</span> </span>
% endif % endif
% if subsection['id'] in milestones and not milestones[subsection['id']]['completed_prereqs']: % if subsection['id'] in milestones:
<span class="subtitle"> <span class="subtitle">
<span class="subtitle-name"> <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>
</span> </span>
% endif % endif
......
...@@ -25,6 +25,7 @@ class CourseOutlineFragmentView(EdxFragmentView): ...@@ -25,6 +25,7 @@ class CourseOutlineFragmentView(EdxFragmentView):
""" """
course_key = CourseKey.from_string(course_id) course_key = CourseKey.from_string(course_id)
course_overview = get_course_overview_with_access(request.user, 'load', course_key, check_if_enrolled=True) 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) course_block_tree = get_course_outline_block_tree(request, course_id)
all_course_blocks = get_all_course_blocks(request, course_id) all_course_blocks = get_all_course_blocks(request, course_id)
...@@ -34,7 +35,6 @@ class CourseOutlineFragmentView(EdxFragmentView): ...@@ -34,7 +35,6 @@ class CourseOutlineFragmentView(EdxFragmentView):
content_milestones = self.get_content_milestones(request, course_key, all_course_blocks) content_milestones = self.get_content_milestones(request, course_key, all_course_blocks)
context = { context = {
'csrf': csrf(request)['csrf_token'], 'csrf': csrf(request)['csrf_token'],
'course': course_overview, 'course': course_overview,
...@@ -45,42 +45,27 @@ class CourseOutlineFragmentView(EdxFragmentView): ...@@ -45,42 +45,27 @@ class CourseOutlineFragmentView(EdxFragmentView):
return Fragment(html) return Fragment(html)
def get_content_milestones(self, request, course_key, all_course_blocks): 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, course_key,
relationship='requires', 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' unfulfilled_prereqs = get_all_course_content_milestones(
# TODO: try grabbing non userspecifc 'fulfills' course_key,
# 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,
relationship='requires', relationship='requires',
user_id=request.user.id) user_id=request.user.id)
for milestone in course_prereqs: for milestone in all_course_prereqs:
# check that its a 'requires' relationship course_content_milestones[ milestone['content_id'] ] = {
# TODO: just grab the 'requires' milestones from the database 'completed_prereqs': True,
if milestone['requirements']: 'min_score': milestone['requirements']['min_score'],
content_milestones[ milestone['content_id'] ] = { 'prereq': all_course_blocks['blocks'][milestone['namespace'].replace('.gating', '')]['display_name']
'completed_prereqs': True, }
'min_score': milestone['requirements']['min_score']
}
for milestone in unfulfilled_prereqs: for milestone in unfulfilled_prereqs:
content_milestones[milestone['content_id']]['completed_prereqs'] = False course_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?
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