Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
edx-platform-release
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
1
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Hsin-Yu Chien
edx-platform-release
Commits
6f8ecf33
Commit
6f8ecf33
authored
4 years ago
by
Daphne Li-Chen
Browse files
Options
Downloads
Patches
Plain Diff
AA-204: passing correct section information to frontend to complete outline portion of tab
parent
725e0bbd
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
lms/djangoapps/course_home_api/progress/v1/serializers.py
+50
-1
50 additions, 1 deletion
lms/djangoapps/course_home_api/progress/v1/serializers.py
lms/djangoapps/course_home_api/progress/v1/views.py
+15
-3
15 additions, 3 deletions
lms/djangoapps/course_home_api/progress/v1/views.py
with
65 additions
and
4 deletions
lms/djangoapps/course_home_api/progress/v1/serializers.py
+
50
−
1
View file @
6f8ecf33
"""
Progress Tab Serializers
"""
from
rest_framework
import
serializers
from
lms.djangoapps.course_home_api.outline.v1.serializers
import
CourseBlockSerializer
from
rest_framework.reverse
import
reverse
class
GradedTotalSerializer
(
serializers
.
Serializer
):
earned
=
serializers
.
FloatField
()
first_attempted
=
serializers
.
CharField
()
graded
=
serializers
.
BooleanField
()
possible
=
serializers
.
FloatField
()
class
SubsectionSerializer
(
serializers
.
Serializer
):
display_name
=
serializers
.
CharField
()
due
=
serializers
.
DateTimeField
()
format
=
serializers
.
CharField
()
graded
=
serializers
.
BooleanField
()
graded_total
=
GradedTotalSerializer
()
# TODO: override serializer
percent_graded
=
serializers
.
FloatField
()
problem_scores
=
serializers
.
SerializerMethodField
()
show_correctness
=
serializers
.
CharField
()
show_grades
=
serializers
.
SerializerMethodField
()
url
=
serializers
.
SerializerMethodField
()
def
get_url
(
self
,
subsection
):
relative_path
=
reverse
(
'
jump_to
'
,
args
=
[
self
.
context
[
'
course_key
'
],
subsection
.
location
])
request
=
self
.
context
[
'
request
'
]
return
request
.
build_absolute_uri
(
relative_path
)
def
get_problem_scores
(
self
,
subsection
):
problem_scores
=
[
{
'
earned
'
:
score
.
earned
,
'
possible
'
:
score
.
possible
,
}
for
score
in
subsection
.
problem_scores
.
values
()
]
return
problem_scores
def
get_show_grades
(
self
,
subsection
):
return
subsection
.
show_grades
(
self
.
context
[
'
staff_access
'
])
class
ChapterSerializer
(
serializers
.
Serializer
):
"""
Serializer for chapters in coursewaresummary
"""
display_name
=
serializers
.
CharField
()
subsections
=
SubsectionSerializer
(
source
=
'
sections
'
,
many
=
True
)
class
ProgressTabSerializer
(
serializers
.
Serializer
):
...
...
@@ -11,4 +58,6 @@ class ProgressTabSerializer(serializers.Serializer):
Serializer for progress tab
"""
course_blocks
=
CourseBlockSerializer
()
courseware_summary
=
ChapterSerializer
(
many
=
True
)
enrollment_mode
=
serializers
.
CharField
()
user_timezone
=
serializers
.
CharField
()
This diff is collapsed.
Click to expand it.
lms/djangoapps/course_home_api/progress/v1/views.py
+
15
−
3
View file @
6f8ecf33
...
...
@@ -13,6 +13,7 @@ from lms.djangoapps.course_home_api.progress.v1.serializers import ProgressTabSe
from
student.models
import
CourseEnrollment
,
UserTestGroup
from
lms.djangoapps.course_api.blocks.transformers.blocks_api
import
BlocksAPITransformer
from
lms.djangoapps.courseware.context_processor
import
user_timezone_locale_prefs
from
lms.djangoapps.courseware.courses
import
get_course_with_access
from
lms.djangoapps.courseware.masquerade
import
setup_masquerade
from
lms.djangoapps.courseware.access
import
has_access
...
...
@@ -20,6 +21,7 @@ from xmodule.modulestore.django import modulestore
from
lms.djangoapps.course_blocks.api
import
get_course_blocks
import
lms.djangoapps.course_blocks.api
as
course_blocks_api
from
lms.djangoapps.grades.api
import
CourseGradeFactory
from
openedx.core.djangoapps.content.block_structure.transformers
import
BlockStructureTransformers
...
...
@@ -82,21 +84,31 @@ class ProgressTabView(RetrieveAPIView):
reset_masquerade_data
=
True
)
user_timezone_locale
=
user_timezone_locale_prefs
(
request
)
user_timezone
=
user_timezone_locale
[
'
user_timezone
'
]
transformers
=
BlockStructureTransformers
()
transformers
+=
course_blocks_api
.
get_course_block_access_transformers
(
request
.
user
)
transformers
+=
[
BlocksAPITransformer
(
None
,
None
,
depth
=
3
),
]
get_course_with_access
(
request
.
user
,
'
load
'
,
course_key
,
check_if_enrolled
=
True
)
course
=
get_course_with_access
(
request
.
user
,
'
load
'
,
course_key
,
check_if_enrolled
=
True
)
course_blocks
=
get_course_blocks
(
request
.
user
,
course_usage_key
,
transformers
,
include_completion
=
True
)
enrollment_mode
,
_
=
CourseEnrollment
.
enrollment_mode_for_user
(
request
.
user
,
course_key
)
course_grade
=
CourseGradeFactory
().
read
(
request
.
user
,
course
)
courseware_summary
=
course_grade
.
chapter_grades
.
values
()
data
=
{
'
course_blocks
'
:
course_blocks
,
'
enrollment_mode
'
:
enrollment_mode
,
'
courseware_summary
'
:
courseware_summary
,
'
user_timezone
'
:
user_timezone
,
}
serializer
=
self
.
get_serializer
(
data
)
context
=
self
.
get_serializer_context
()
context
[
'
staff_access
'
]
=
bool
(
has_access
(
request
.
user
,
'
staff
'
,
course
))
context
[
'
course_key
'
]
=
course_key
serializer
=
self
.
get_serializer_class
()(
data
,
context
=
context
)
return
Response
(
serializer
.
data
)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment