[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
37 lines
1.4 KiB
ReStructuredText
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.
|