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
a7a8e196
Commit
a7a8e196
authored
Oct 07, 2014
by
Matt Drayer
Committed by
Jonathan Piacenti
Aug 20, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mattdrayer/api-org-course-avg: Added average grade to response
parent
f2168356
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
3 deletions
+15
-3
lms/djangoapps/api_manager/organizations/tests.py
+9
-2
lms/djangoapps/api_manager/organizations/views.py
+6
-1
No files found.
lms/djangoapps/api_manager/organizations/tests.py
View file @
a7a8e196
...
...
@@ -337,6 +337,7 @@ class OrganizationsApiTests(ModuleStoreTestCase):
metrics_uri
=
'{}metrics/'
.
format
(
test_uri
)
response
=
self
.
do_get
(
metrics_uri
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
data
[
'users_grade_average'
],
0.838
)
self
.
assertEqual
(
response
.
data
[
'users_grade_complete_count'
],
4
)
...
...
@@ -389,7 +390,7 @@ class OrganizationsApiTests(ModuleStoreTestCase):
metrics_uri
=
'{}metrics/'
.
format
(
test_uri
)
response
=
self
.
do_get
(
metrics_uri
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
data
[
'users_grade_complete_count'
],
5
)
self
.
assertEqual
(
response
.
data
[
'users_grade_complete_count'
],
6
)
courses
=
{
'courses'
:
unicode
(
course1
.
id
)}
filtered_metrics_uri
=
'{}?{}'
.
format
(
metrics_uri
,
urlencode
(
courses
))
...
...
@@ -397,8 +398,14 @@ class OrganizationsApiTests(ModuleStoreTestCase):
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
data
[
'users_grade_complete_count'
],
2
)
courses
=
{
'courses'
:
unicode
(
course2
.
id
)}
filtered_metrics_uri
=
'{}?{}'
.
format
(
metrics_uri
,
urlencode
(
courses
))
response
=
self
.
do_get
(
filtered_metrics_uri
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
data
[
'users_grade_complete_count'
],
4
)
courses
=
{
'courses'
:
'{},{}'
.
format
(
course1
.
id
,
course2
.
id
)}
filtered_metrics_uri
=
'{}?{}'
.
format
(
metrics_uri
,
urlencode
(
courses
))
response
=
self
.
do_get
(
filtered_metrics_uri
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
data
[
'users_grade_complete_count'
],
5
)
self
.
assertEqual
(
response
.
data
[
'users_grade_complete_count'
],
6
)
lms/djangoapps/api_manager/organizations/views.py
View file @
a7a8e196
...
...
@@ -4,7 +4,7 @@
from
django.conf
import
settings
from
django.contrib.auth.models
import
User
from
django.core.exceptions
import
ObjectDoesNotExist
from
django.db.models
import
F
from
django.db.models
import
Avg
,
F
from
rest_framework
import
status
,
viewsets
from
rest_framework.decorators
import
action
...
...
@@ -43,9 +43,14 @@ class OrganizationsViewSet(viewsets.ModelViewSet):
for
course_string
in
courses_filter
:
courses
.
append
(
get_course_key
(
course_string
))
org_user_grades
=
org_user_grades
.
filter
(
course_id__in
=
courses
)
users_grade_average
=
org_user_grades
.
aggregate
(
Avg
(
'grade'
))
response_data
[
'users_grade_average'
]
=
float
(
'{0:.3f}'
.
format
(
float
(
users_grade_average
[
'grade__avg'
])))
users_grade_complete_count
=
org_user_grades
\
.
filter
(
proforma_grade__lte
=
F
(
'grade'
)
+
grade_complete_match_range
,
proforma_grade__gt
=
0
)
.
count
()
response_data
[
'users_grade_complete_count'
]
=
users_grade_complete_count
return
Response
(
response_data
,
status
=
status
.
HTTP_200_OK
)
@action
(
methods
=
[
'get'
,
'post'
])
...
...
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