Files
edx-platform/lms/djangoapps/certificates/docs/decisions/004-cert-status.rst

57 lines
2.1 KiB
ReStructuredText

Course certificate Status
=========================
Status
------
Accepted
Background
----------
Course certificates can have any one of a number of status values (for the
full list, see the `CertificateStatuses model`_). For a certificate to be
available for the user to see, it must be in the *downloadable* state, meaning
it must have a status value of *downloadable*.
Decision
--------
The course certificate code will only set the following certificate statuses:
* downloadable - The user has been granted this certificate and the certificate is ready and available
* notpassing - The user has not achieved a passing grade
* unavailable - Certificate has been invalidated
* unverified - The user does not have an approved, unexpired identity verification
Other status values are kept for historical reasons and because existing course
certificates may have been granted that status.
Consequences
------------
If a certificate has been invalidated, its status will be *unavailable*.
If all requirements have been met, a *downloadable* certificate will be
generated (created or updated).
If all requirements *except* for identity verification have been met, an
*unverified* certificate will be generated.
If all requirements *except* for passing the course have been met and a
certificate already exists, its status will be *notpassing*. Alternately, if a
*downloadable* certificate exists and a failing grade signal is received for
a user who is not on the allowlist, the certificate's status will be
*notpassing*.
Note that this does not create a hierarchy of certificate statuses. For
example, a certificate could have a *notpassing* status even if the user
has not the passed identity verification requirement.
References
----------
For a full list of requirements for a course certificate to be granted, please
see the `allowlist certificate requirements`_ and `certificate requirements`_.
For a full list of certificate statuses, see the `CertificateStatuses model`_.
.. _allowlist certificate requirements: ./001-allowlist-cert-requirements.rst
.. _certificate requirements: ./002-cert-requirements.rst
.. _CertificateStatuses model: ../../data.py