Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
fec5a14f
Commit
fec5a14f
authored
7 years ago
by
Bessie Steinberg
Committed by
Bill Filler
7 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
clean stuff up
parent
7eb90ead
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
28 additions
and
17 deletions
+28
-17
common/djangoapps/util/milestones_helpers.py
+6
-5
openedx/features/course_experience/templates/course_experience/course-outline-fragment.html
+1
-1
openedx/features/course_experience/views/course_outline.py
+21
-11
No files found.
common/djangoapps/util/milestones_helpers.py
View file @
fec5a14f
...
...
@@ -355,7 +355,8 @@ def get_course_content_milestones_by_course(course_id, relationship, user_id=Non
return
[]
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
)
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
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
Uses the request cache to store all of a user's
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'
):
return
[]
...
...
@@ -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
)]
def
get_all_course_content_milestones
(
course_key
,
relationship
=
None
):
return
milestones_api
.
get_course_content_milestones
(
course_key
,
relationship
)
def
get_all_course_content_milestones
(
course_key
,
user_id
=
None
,
relationship
=
None
):
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
):
"""
...
...
This diff is collapsed.
Click to expand it.
openedx/features/course_experience/templates/course_experience/course-outline-fragment.html
View file @
fec5a14f
...
...
@@ -107,7 +107,7 @@ from openedx.core.djangolib.markup import HTML, Text
% if subsection['id'] in milestones and not milestones[subsection['id']]['completed_prereqs']:
<span
class=
"subtitle"
>
<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>
% endif
...
...
This diff is collapsed.
Click to expand it.
openedx/features/course_experience/views/course_outline.py
View file @
fec5a14f
...
...
@@ -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
,
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
):
...
...
@@ -32,12 +32,29 @@ class CourseOutlineFragmentView(EdxFragmentView):
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
=
{}
#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
,
relationship
=
'requires'
,
user_id
=
request
.
user
.
id
)
...
...
@@ -56,11 +73,4 @@ class CourseOutlineFragmentView(EdxFragmentView):
content_milestones
[
milestone
[
'content_id'
]][
'prereq'
]
=
all_course_blocks
[
'blocks'
][
milestone
[
'namespace'
]
.
replace
(
'.gating'
,
''
)][
'display_name'
]
#TODO: can there be multiple prereqs?
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
)
return
content_milestones
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment