Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-analytics-data-api
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-analytics-data-api
Commits
e5cb1b99
Commit
e5cb1b99
authored
Nov 13, 2014
by
Clinton Blackburn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Merging Audit and Honor Enrollment Modes
The audit and honor enrollment modes are now combined into honor.
parent
9b23fed0
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
21 additions
and
5 deletions
+21
-5
analytics_data_api/v0/serializers.py
+5
-2
analytics_data_api/v0/tests/test_views.py
+12
-3
analytics_data_api/v0/views/courses.py
+4
-0
No files found.
analytics_data_api/v0/serializers.py
View file @
e5cb1b99
...
@@ -3,6 +3,9 @@ from rest_framework import serializers
...
@@ -3,6 +3,9 @@ from rest_framework import serializers
from
analytics_data_api.constants
import
enrollment_modes
,
genders
from
analytics_data_api.constants
import
enrollment_modes
,
genders
from
analytics_data_api.v0
import
models
from
analytics_data_api.v0
import
models
# Below are the enrollment modes supported by this API. The audit and honor enrollment modes are merged into honor.
ENROLLMENT_MODES
=
[
enrollment_modes
.
HONOR
,
enrollment_modes
.
PROFESSIONAL
,
enrollment_modes
.
VERIFIED
]
class
CourseActivityByWeekSerializer
(
serializers
.
ModelSerializer
):
class
CourseActivityByWeekSerializer
(
serializers
.
ModelSerializer
):
"""
"""
...
@@ -110,7 +113,7 @@ class CourseEnrollmentModeDailySerializer(BaseCourseEnrollmentModelSerializer):
...
@@ -110,7 +113,7 @@ class CourseEnrollmentModeDailySerializer(BaseCourseEnrollmentModelSerializer):
fields
=
super
(
CourseEnrollmentModeDailySerializer
,
self
)
.
get_default_fields
()
fields
=
super
(
CourseEnrollmentModeDailySerializer
,
self
)
.
get_default_fields
()
# Create a field for each enrollment mode
# Create a field for each enrollment mode
for
mode
in
enrollment_modes
.
ALL
:
for
mode
in
ENROLLMENT_MODES
:
fields
[
mode
]
=
serializers
.
IntegerField
(
required
=
True
,
default
=
0
)
fields
[
mode
]
=
serializers
.
IntegerField
(
required
=
True
,
default
=
0
)
# Create a transform method for each field
# Create a transform method for each field
...
@@ -125,7 +128,7 @@ class CourseEnrollmentModeDailySerializer(BaseCourseEnrollmentModelSerializer):
...
@@ -125,7 +128,7 @@ class CourseEnrollmentModeDailySerializer(BaseCourseEnrollmentModelSerializer):
model
=
models
.
CourseEnrollmentDaily
model
=
models
.
CourseEnrollmentDaily
# Declare the dynamically-created fields here as well so that they will be picked up by Swagger.
# Declare the dynamically-created fields here as well so that they will be picked up by Swagger.
fields
=
[
'course_id'
,
'date'
,
'count'
,
'created'
]
+
enrollment_modes
.
ALL
fields
=
[
'course_id'
,
'date'
,
'count'
,
'created'
]
+
ENROLLMENT_MODES
class
CountrySerializer
(
serializers
.
Serializer
):
class
CountrySerializer
(
serializers
.
Serializer
):
...
...
analytics_data_api/v0/tests/test_views.py
View file @
e5cb1b99
...
@@ -459,6 +459,10 @@ class CourseEnrollmentModeViewTests(CourseEnrollmentViewTestCaseMixin, DefaultFi
...
@@ -459,6 +459,10 @@ class CourseEnrollmentModeViewTests(CourseEnrollmentViewTestCaseMixin, DefaultFi
G
(
self
.
model
,
course_id
=
course_id
,
date
=
self
.
date
,
mode
=
mode
)
G
(
self
.
model
,
course_id
=
course_id
,
date
=
self
.
date
,
mode
=
mode
)
def
serialize_enrollment
(
self
,
enrollment
):
def
serialize_enrollment
(
self
,
enrollment
):
# Treat audit as honor
if
enrollment
.
mode
is
enrollment_modes
.
AUDIT
:
enrollment
.
mode
=
enrollment_modes
.
HONOR
return
{
return
{
u'course_id'
:
enrollment
.
course_id
,
u'course_id'
:
enrollment
.
course_id
,
u'date'
:
enrollment
.
date
.
strftime
(
settings
.
DATE_FORMAT
),
u'date'
:
enrollment
.
date
.
strftime
(
settings
.
DATE_FORMAT
),
...
@@ -475,6 +479,10 @@ class CourseEnrollmentModeViewTests(CourseEnrollmentViewTestCaseMixin, DefaultFi
...
@@ -475,6 +479,10 @@ class CourseEnrollmentModeViewTests(CourseEnrollmentViewTestCaseMixin, DefaultFi
total
+=
ce
.
count
total
+=
ce
.
count
response
[
ce
.
mode
]
=
ce
.
count
response
[
ce
.
mode
]
=
ce
.
count
# Merge the honor and audit modes
response
[
enrollment_modes
.
HONOR
]
+=
response
[
enrollment_modes
.
AUDIT
]
del
response
[
enrollment_modes
.
AUDIT
]
response
[
u'count'
]
=
total
response
[
u'count'
]
=
total
return
[
response
]
return
[
response
]
...
@@ -489,12 +497,13 @@ class CourseEnrollmentModeViewTests(CourseEnrollmentViewTestCaseMixin, DefaultFi
...
@@ -489,12 +497,13 @@ class CourseEnrollmentModeViewTests(CourseEnrollmentViewTestCaseMixin, DefaultFi
modes
=
list
(
enrollment_modes
.
ALL
)
modes
=
list
(
enrollment_modes
.
ALL
)
modes
.
remove
(
enrollment_modes
.
AUDIT
)
modes
.
remove
(
enrollment_modes
.
AUDIT
)
expected
=
self
.
serialize_enrollment
(
enrollment
)
expected
=
{}
expected
[
u'count'
]
=
1
for
mode
in
modes
:
for
mode
in
modes
:
expected
[
mode
]
=
0
expected
[
mode
]
=
0
expected
.
update
(
self
.
serialize_enrollment
(
enrollment
))
expected
[
u'count'
]
=
1
expected
=
[
expected
]
expected
=
[
expected
]
self
.
assertViewReturnsExpectedData
(
expected
)
self
.
assertViewReturnsExpectedData
(
expected
)
...
...
analytics_data_api/v0/views/courses.py
View file @
e5cb1b99
...
@@ -9,6 +9,7 @@ from django.http import Http404
...
@@ -9,6 +9,7 @@ from django.http import Http404
from
django.utils.timezone
import
make_aware
,
utc
from
django.utils.timezone
import
make_aware
,
utc
from
rest_framework
import
generics
from
rest_framework
import
generics
from
opaque_keys.edx.keys
import
CourseKey
from
opaque_keys.edx.keys
import
CourseKey
from
analytics_data_api.constants
import
enrollment_modes
from
analytics_data_api.v0
import
models
,
serializers
from
analytics_data_api.v0
import
models
,
serializers
...
@@ -381,6 +382,9 @@ class CourseEnrollmentModeView(BaseCourseEnrollmentView):
...
@@ -381,6 +382,9 @@ class CourseEnrollmentModeView(BaseCourseEnrollmentView):
item
[
u'created'
]
=
max
(
enrollment
.
created
,
item
[
u'created'
])
if
item
[
u'created'
]
else
enrollment
.
created
item
[
u'created'
]
=
max
(
enrollment
.
created
,
item
[
u'created'
])
if
item
[
u'created'
]
else
enrollment
.
created
total
+=
enrollment
.
count
total
+=
enrollment
.
count
# Merge audit and honor
item
[
enrollment_modes
.
HONOR
]
=
item
.
get
(
enrollment_modes
.
HONOR
,
0
)
+
item
.
pop
(
enrollment_modes
.
AUDIT
,
0
)
item
[
u'count'
]
=
total
item
[
u'count'
]
=
total
formatted_data
.
append
(
item
)
formatted_data
.
append
(
item
)
...
...
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