Commit fec5a14f by Bessie Steinberg Committed by Bill Filler

clean stuff up

parent 7eb90ead
...@@ -355,7 +355,8 @@ def get_course_content_milestones_by_course(course_id, relationship, user_id=Non ...@@ -355,7 +355,8 @@ def get_course_content_milestones_by_course(course_id, relationship, user_id=Non
return [] return []
if user_id is None: if user_id is None:
return milestones_api.get_course_content_milestones(course_id, content_id, relationship) #TODO handle this case - maybe just have it when you are
return milestones_api.get_course_content_milestones(course_id, relationship)
request_cache_dict = request_cache.get_cache(REQUEST_CACHE_NAME) request_cache_dict = request_cache.get_cache(REQUEST_CACHE_NAME)
if user_id not in request_cache_dict: if user_id not in request_cache_dict:
...@@ -371,13 +372,13 @@ def get_course_content_milestones_by_course(course_id, relationship, user_id=Non ...@@ -371,13 +372,13 @@ def get_course_content_milestones_by_course(course_id, relationship, user_id=Non
return request_cache_dict[user_id][relationship] return request_cache_dict[user_id][relationship]
def get_course_content_milestones(course_id, content_id, relationship, user_id=None): def get_course_content_milestones(course_id, content_id=None, relationship=None, user_id=None):
""" """
Client API operation adapter/wrapper Client API operation adapter/wrapper
Uses the request cache to store all of a user's Uses the request cache to store all of a user's
milestones milestones
""" """
#TODO: refactor and call get course content by course #TODO: refactor and call get course content by course or just set content_id to None by default and make sure that case is handled
if not settings.FEATURES.get('MILESTONES_APP'): if not settings.FEATURES.get('MILESTONES_APP'):
return [] return []
...@@ -399,8 +400,8 @@ def get_course_content_milestones(course_id, content_id, relationship, user_id=N ...@@ -399,8 +400,8 @@ 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): def get_all_course_content_milestones(course_key, user_id=None, relationship=None):
return milestones_api.get_course_content_milestones(course_key, relationship) return milestones_api.get_course_content_milestones(course_key, user={"id": user_id}, relationship=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):
""" """
......
...@@ -107,7 +107,7 @@ from openedx.core.djangolib.markup import HTML, Text ...@@ -107,7 +107,7 @@ from openedx.core.djangolib.markup import HTML, Text
% if subsection['id'] in milestones and not milestones[subsection['id']]['completed_prereqs']: % if subsection['id'] in milestones and not milestones[subsection['id']]['completed_prereqs']:
<span class="subtitle"> <span class="subtitle">
<span class="subtitle-name"> <span class="subtitle-name">
Score of ${milestones[subsection['id']]['min_score']} required on ${milestones[subsection['id']]['prereq']} to access this content Score of <em>${milestones[subsection['id']]['min_score']}</em> required on <em>${milestones[subsection['id']]['prereq']}</em> to access this content
</span> </span>
</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, get_all_course_blocks from ..utils import get_course_outline_block_tree, get_all_course_blocks
from util.milestones_helpers import get_all_course_content_milestones, get_course_content_milestones_by_course, milestones_achieved_by_user, get_course_content_milestones from util.milestones_helpers import get_milestone_relationship_types, 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):
...@@ -32,12 +32,29 @@ class CourseOutlineFragmentView(EdxFragmentView): ...@@ -32,12 +32,29 @@ class CourseOutlineFragmentView(EdxFragmentView):
return None return None
content_milestones = self.get_content_milestones(request, course_key, all_course_blocks)
relationship_types = get_milestone_relationship_types()
context = {
'csrf': csrf(request)['csrf_token'],
'course': course_overview,
'blocks': course_block_tree,
'milestones': content_milestones
}
html = render_to_string('course_experience/course-outline-fragment.html', context)
return Fragment(html)
def get_content_milestones(self, request, course_key, all_course_blocks):
content_milestones = {} content_milestones = {}
#TODO: should i be using a user id here? probably #TODO: should i be using a user id here? probably
course_prereqs = get_all_course_content_milestones(course_key) #, relationship='requires') # course_prereqs = get_all_course_content_milestones(course_key, request.user.id) #, relationship='requires')
course_prereqs = get_course_content_milestones(
course_id=course_key,
user_id=request.user.id)
unfulfilled_prereqs = get_course_content_milestones_by_course( unfulfilled_prereqs = get_course_content_milestones(
course_id=course_key, course_id=course_key,
relationship='requires', relationship='requires',
user_id=request.user.id) user_id=request.user.id)
...@@ -55,12 +72,5 @@ class CourseOutlineFragmentView(EdxFragmentView): ...@@ -55,12 +72,5 @@ class CourseOutlineFragmentView(EdxFragmentView):
content_milestones[milestone['content_id']]['completed_prereqs'] = False content_milestones[milestone['content_id']]['completed_prereqs'] = False
content_milestones[milestone['content_id']]['prereq'] = all_course_blocks['blocks'][milestone['namespace'].replace('.gating','')]['display_name'] content_milestones[milestone['content_id']]['prereq'] = all_course_blocks['blocks'][milestone['namespace'].replace('.gating','')]['display_name']
#TODO: can there be multiple prereqs? #TODO: can there be multiple prereqs?
context = { return content_milestones
'csrf': csrf(request)['csrf_token'],
'course': course_overview,
'blocks': course_block_tree,
'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