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
7d8bf751
Commit
7d8bf751
authored
Nov 20, 2014
by
Matt Drayer
Committed by
Jonathan Piacenti
Aug 20, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mattdrayer/api-2632-fix: Fixed bugs related to proforma grade calculation/retrieval
parent
41c485b5
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
18 additions
and
8 deletions
+18
-8
lms/djangoapps/api_manager/courses/tests.py
+0
-1
lms/djangoapps/api_manager/users/views.py
+3
-3
lms/djangoapps/gradebook/management/commands/generate_gradebook_entries.py
+3
-3
lms/djangoapps/gradebook/management/commands/tests/test_generate_gradebook_entries.py
+12
-1
No files found.
lms/djangoapps/api_manager/courses/tests.py
View file @
7d8bf751
...
...
@@ -18,7 +18,6 @@ from django.core.exceptions import ObjectDoesNotExist
from
django.test
import
Client
from
django.test.utils
import
override_settings
from
capa.tests.response_xml_factory
import
StringResponseXMLFactory
from
courseware
import
module_render
from
courseware.tests.factories
import
StudentModuleFactory
...
...
lms/djangoapps/api_manager/users/views.py
View file @
7d8bf751
...
...
@@ -949,16 +949,16 @@ class UsersCoursesGradesDetail(SecureAPIView):
progress_summary
=
grades
.
progress_summary
(
student
,
request
,
course_descriptor
)
# pylint: disable=W0612
grade_summary
=
grades
.
grade
(
student
,
request
,
course_descriptor
)
grading_policy
=
course_descriptor
.
grading_policy
current_grade
=
0
proforma_grade
=
0
queryset
=
StudentGradebook
.
objects
.
filter
(
user
=
student
,
course_id__exact
=
course_key
,
)
current_grade
=
0
proforma_grade
=
0
if
len
(
queryset
):
current_grade
=
queryset
[
0
]
.
grade
proforma_grade
=
grades
.
calculate_proforma_grade
(
grade_summary
,
grading_policy
)
proforma_grade
=
queryset
[
0
]
.
proforma_grade
response_data
=
{
'courseware_summary'
:
progress_summary
,
...
...
lms/djangoapps/gradebook/management/commands/generate_gradebook_entries.py
View file @
7d8bf751
...
...
@@ -72,12 +72,12 @@ class Command(BaseCommand):
proforma_grade
=
grades
.
calculate_proforma_grade
(
grade_data
,
course
.
grading_policy
)
try
:
gradebook_entry
=
StudentGradebook
.
objects
.
get
(
user
=
user
,
course_id
=
course
.
id
)
if
gradebook_entry
.
grade
!=
grade
:
if
gradebook_entry
.
grade
!=
grade
or
gradebook_entry
.
proforma_grade
!=
proforma_grade
:
gradebook_entry
.
grade
=
grade
proforma_grade
=
proforma_grade
gradebook_entry
.
proforma_grade
=
proforma_grade
gradebook_entry
.
save
()
except
StudentGradebook
.
DoesNotExist
:
StudentGradebook
.
objects
.
create
(
user
=
user
,
course_id
=
course
.
id
,
grade
=
grade
,
proforma_grade
=
proforma_grade
)
log_msg
=
'Gradebook entry created -- Course: {}, User: {} (grade: {}
)'
.
format
(
course
.
id
,
user
.
id
,
grade
)
log_msg
=
'Gradebook entry created -- Course: {}, User: {} (grade: {}
, proforma_grade: {})'
.
format
(
course
.
id
,
user
.
id
,
grade
,
proforma_
grade
)
print
log_msg
log
.
info
(
log_msg
)
lms/djangoapps/gradebook/management/commands/tests/test_generate_gradebook_entries.py
View file @
7d8bf751
...
...
@@ -153,6 +153,7 @@ class GenerateGradebookEntriesTests(ModuleStoreTestCase):
self
.
assertEqual
(
len
(
current_entries
),
1
)
user0_entry
=
StudentGradebook
.
objects
.
get
(
user
=
self
.
users
[
0
])
self
.
assertEqual
(
user0_entry
.
grade
,
0.24
)
self
.
assertEqual
(
user0_entry
.
proforma_grade
,
0.28575
)
# Enable the signalling mechanism
settings
.
_wrapped
.
default_settings
.
FEATURES
[
'SIGNAL_ON_SCORE_CHANGED'
]
=
True
...
...
@@ -170,6 +171,13 @@ class GenerateGradebookEntriesTests(ModuleStoreTestCase):
self
.
assertEqual
(
len
(
current_entries
),
2
)
user0_entry
=
StudentGradebook
.
objects
.
get
(
user
=
self
.
users
[
0
])
self
.
assertEqual
(
user0_entry
.
grade
,
0.50
)
self
.
assertEqual
(
user0_entry
.
proforma_grade
,
0.54975
)
# Alter the user's grade and proforma grade to ensure we trigger the update logic
user0_entry
=
StudentGradebook
.
objects
.
get
(
user
=
self
.
users
[
0
])
user0_entry
.
grade
=
0.25
user0_entry
.
proforma_grade
=
0.55
user0_entry
.
save
()
# Run the command across all users, but just for the specified course
generate_gradebook_entries
.
Command
()
.
handle
(
course_ids
=
course_ids
)
...
...
@@ -178,10 +186,13 @@ class GenerateGradebookEntriesTests(ModuleStoreTestCase):
current_entries
=
StudentGradebook
.
objects
.
all
()
self
.
assertEqual
(
len
(
current_entries
),
3
)
current_entries
=
StudentGradebookHistory
.
objects
.
all
()
self
.
assertEqual
(
len
(
current_entries
),
4
)
self
.
assertEqual
(
len
(
current_entries
),
6
)
user0_entry
=
StudentGradebook
.
objects
.
get
(
user
=
self
.
users
[
0
])
self
.
assertEqual
(
user0_entry
.
grade
,
0.50
)
self
.
assertEqual
(
user0_entry
.
proforma_grade
,
0.54975
)
user1_entry
=
StudentGradebook
.
objects
.
get
(
user
=
self
.
users
[
1
])
self
.
assertEqual
(
user1_entry
.
grade
,
0.48
)
self
.
assertEqual
(
user1_entry
.
proforma_grade
,
0.5715
)
user2_entry
=
StudentGradebook
.
objects
.
get
(
user
=
self
.
users
[
2
])
self
.
assertEqual
(
user2_entry
.
grade
,
0.72
)
self
.
assertEqual
(
user2_entry
.
proforma_grade
,
0.85725
)
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