Files
edx-platform/lms/djangoapps/grades/docs/decisions/0004-persistent-grade-overrides.rst
2019-01-08 15:21:04 -05:00

34 lines
1.5 KiB
ReStructuredText

Persistent Subsection Grade Overrides
-------------------------------------
New decisions have been made about subsection grade overrides, see 0006-overrides-applied-separately_.
.. _0006-overrides-applied-separately: 0006-overrides-applied-separately.rst
Status
======
Accepted (circa Summer 2017)
Superseded (January 2019)
Context
=======
It is sometimes necessary to override a learner's score for an entire subsection/assignment.
For example, for a graded and proctored exam, we may wish to automatically fail a learner's
attempt on the exam with a score of zero if the proctor indicates suspicious behavior
on the part of the learner.
Decisions
=========
* We want to allow for the automatic or manual creation of overrides at the subsection-level.
* We'll create a class called ``PersistentSubsectionGradeOverride`` to store the overridden scores, and
an instance of this class will always be associated with an instance of ``PersistentSubsectionGrade``.
* When updating a ``PersistentSubsectionGrade``, we'll persist the overridden scores from an associated
``PersistentSubsectionGradeOverride`` (if one exists) instead of the computed value for the subsection grade.
* No more than one ``PersistentSubsectionGradeOverride`` will ever exist for a given ``PersistentSubsectionGrade``.
That is, write actions against ``PersistentSubsectionGradeOverride`` are always an update-or-create action,
using the primary key of the ``PersistentSubsectionGrade`` to perform the ``SELECT ... FOR UPDATE`` query.