Files
edx-platform/lms/djangoapps/certificates/docs/decisions/002-cert-requirements.rst
Justin Hynes 13d174fdda fix: update v2 certificate generation eligibility logic
[MICROBA-1109]
* Remove the requirement for the `auto_certificate_generation` waffle switch to be enabled in order for a learner to be eligible for a certificate. This switch should control _when_ a certificate is generated, not _if_ a certificate will be generated for a learner.
* Move the `auto_certificate_generation_enabled` check to happen before we try to generate v2 certificates in signals.py
* Update unit tests
* Update documentation
2021-04-06 08:50:54 -04:00

37 lines
1.4 KiB
ReStructuredText

Regular Course Certificate Requirements
=======================================
Status
------
Accepted
Background
----------
This doc covers requirements for regular (non-allowlist) course certificates.
Users can earn a course certificate in a particular course run if they meet a
number of criteria, and the course run is configured to grant them the certificate.
The certificates are stored in the *GeneratedCertificate* model.
Requirements
------------
For a user to receive a course certificate in the *downloadable* state (for the
user to have a course certificate available to them), the following things must
be true at the time the certificate is generated:
* The user must have an enrollment in the course run
* The enrollment mode must be eligible for a certificate
* The enrollment does not need to be active
* The user must have an approved, unexpired, ID verification
* The user must not have an invalidated certificate for the course run (see the *CertificateInvalidation* model)
* HTML (web) certificates must be globally enabled, and also enabled for the course run
* The user must have passed the course run
* The user must not be a beta tester in the course run
* The course run must not be a CCX (custom edX course)
Note: the above requirements were written for V2 of course certificates, which
assumes the CourseWaffleFlag *certificates_revamp.use_updated* has been enabled
for the course run. If it has not been enabled, the prior logic will apply.