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
a9b13f0e
Commit
a9b13f0e
authored
Apr 01, 2015
by
zubair-arbi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
log and ignore invlaid/deleted courses in Enrollment API
ECOM-1273
parent
01bdfb12
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
0 deletions
+39
-0
common/djangoapps/enrollment/serializers.py
+26
-0
common/djangoapps/enrollment/tests/test_data.py
+13
-0
No files found.
common/djangoapps/enrollment/serializers.py
View file @
a9b13f0e
...
@@ -2,11 +2,16 @@
...
@@ -2,11 +2,16 @@
Serializers for all Course Enrollment related return objects.
Serializers for all Course Enrollment related return objects.
"""
"""
import
logging
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
student.models
import
CourseEnrollment
from
student.models
import
CourseEnrollment
from
course_modes.models
import
CourseMode
from
course_modes.models
import
CourseMode
log
=
logging
.
getLogger
(
__name__
)
class
StringListField
(
serializers
.
CharField
):
class
StringListField
(
serializers
.
CharField
):
"""Custom Serializer for turning a comma delimited string into a list.
"""Custom Serializer for turning a comma delimited string into a list.
...
@@ -56,7 +61,28 @@ class CourseEnrollmentSerializer(serializers.ModelSerializer):
...
@@ -56,7 +61,28 @@ class CourseEnrollmentSerializer(serializers.ModelSerializer):
course_details
=
serializers
.
SerializerMethodField
(
'get_course_details'
)
course_details
=
serializers
.
SerializerMethodField
(
'get_course_details'
)
user
=
serializers
.
SerializerMethodField
(
'get_username'
)
user
=
serializers
.
SerializerMethodField
(
'get_username'
)
@property
def
data
(
self
):
serialized_data
=
super
(
CourseEnrollmentSerializer
,
self
)
.
data
# filter the results with empty courses 'course_details'
if
isinstance
(
serialized_data
,
dict
):
if
serialized_data
.
get
(
'course_details'
)
is
None
:
return
None
return
serialized_data
return
[
enrollment
for
enrollment
in
serialized_data
if
enrollment
.
get
(
'course_details'
)]
def
get_course_details
(
self
,
model
):
def
get_course_details
(
self
,
model
):
if
model
.
course
is
None
:
msg
=
u"Course '{0}' does not exist (maybe deleted), in which User (user_id: '{1}') is enrolled."
.
format
(
model
.
course_id
,
model
.
user
.
id
)
log
.
warning
(
msg
)
return
None
field
=
CourseField
()
field
=
CourseField
()
return
field
.
to_native
(
model
.
course
)
return
field
.
to_native
(
model
.
course
)
...
...
common/djangoapps/enrollment/tests/test_data.py
View file @
a9b13f0e
...
@@ -127,6 +127,19 @@ class EnrollmentDataTest(ModuleStoreTestCase):
...
@@ -127,6 +127,19 @@ class EnrollmentDataTest(ModuleStoreTestCase):
results
=
data
.
get_course_enrollments
(
self
.
user
.
username
)
results
=
data
.
get_course_enrollments
(
self
.
user
.
username
)
self
.
assertEqual
(
results
,
created_enrollments
)
self
.
assertEqual
(
results
,
created_enrollments
)
# Now create a course enrollment with some invalid course (does
# not exist in database) for the user and check that the method
# 'get_course_enrollments' ignores course enrollments for invalid
# or deleted courses
CourseEnrollment
.
objects
.
create
(
user
=
self
.
user
,
course_id
=
'InvalidOrg/InvalidCourse/InvalidRun'
,
mode
=
'honor'
,
is_active
=
True
)
updated_results
=
data
.
get_course_enrollments
(
self
.
user
.
username
)
self
.
assertEqual
(
results
,
updated_results
)
@ddt.data
(
@ddt.data
(
# Default (no course modes in the database)
# Default (no course modes in the database)
# Expect that users are automatically enrolled as "honor".
# Expect that users are automatically enrolled as "honor".
...
...
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