There is a bug introduced in this commit:
22046d4067 (diff-32687833c38e231b51a8f27a76c72a56R119)
The return value of the locations_to_weighted_scores[location] is
changed from `Score` object to a tuple (Score, weight). However, the
left side of assignment didn't get updated. So an error is raised and
the Celery task failed to continue. Thus, no grade is being passed back.
As part of the Robust Grades rollout, we expect to see some DatabaseErrors in
various methods that write to the database. Since the success of this write
operation is not needed for the end-user, we just log and swallow the error.
In the future, we'll also enqueue an async task to finish the write operation
that failed.
* First take at forcing a subsection's grade to update when a signal is
sent that a problem's score has changed
* Refactor signal handler connection.
* Expand bokchoy tests to cover progress page
* Add some grading unit tests
TNL-5394
TNL-5364
Small changes to the grades djangoapp
-sets up mock_get_score context handler
-fixes an issue with not invalidating lazy scores property
-code quality fixes
-query count optimization in PersistentSubscetionGrade.create
-adds atomic blocks to avoid IntegrityErrors corrupting an entire request
Hooks the pre-existing grades code into our new PersistentSubsectionGrade data
model. Includes test updates, and some minor changes to the data model that
were discovered in testing.
Adds ENABLE_SUBSECTION_GRADES_SAVED feature flag to both lms and cms. Also
installs the wiring that will allow robust grades to be used for courses
that enable it. This functionality is still gated by the feature flag
and should not be used until the remaining robust grades work is finished.