When On-Demand certificates are enabled for a course, students who pass the course are allowed to generate their own certificates. The student starts generating a certificate by clicking a button on the progress page. When the certificate is ready, the student can download it from the student dashboard.
This document describes how to enable On-Demand certificates in a course. On-Demand certificates can be enabled only after the UX team has configured the certificate template for the course. Once that occurs, PMs can enable On-Demand certificates using the instructor dashboard.
In order to enable student-generated certificates, you must do the following:
Log in as a user with global staff access.
Go to the instructor dashboard for the course. If you have staff access, you should see a "Certificates" section.
In the "Certificates" section of the instructor dashboard, generate example certificates:
Click "Generate Example Certificates"
Wait for certificates to generate. You can click "Refresh Status" to see the most recent status.
Once certificates have successfully generated, you can click links in the "Status" section to view the generated PDF certificates.
If an error occurs, the most likely cause is that certificates are not configured correctly for the course. Inform the UX team so they can make the appropriate changes, then retry.
Make sure you have approved the Certificate before you continue
Once you have successfully generated example certificates, you will be able to enable On-Demand certificates.
Click "Enable Student-Generated Certificates"
You will be shown a confirmation dialog. Confirm the action.
Once student-generated certificates have been enabled, a "generate certificates" button will appear on the student progress page. Students who have passed the course will be able to generate certificates and see the generated certificates on the dashboard.
Ops / Developer Instructions
Student generated certificates can be enabled or disabled for the entire site using Django admin.
As a user with privileges for the CertificateGenerationConfiguration model, log into Django admin (at /admin).
Create a new CertificateGenerationConfiguration, set the "enabled" flag to True or False, and save it.
As with all model-based configuration:
The latest configuration value takes precedence
The cached config value will need to expire (5 minutes) before the new value will take effect.
In order to see the certificates panel of the instructor dashboard, PMs will need the "is_staff" flag set to True on the User model in Django admin. It is not enough to be part of the course staff ("instructor" or "staff" permissions) for the course.
When an error occurs during certificate generation, the certificate status is marked as "error" in the database. However, these errors are not shown to students. We will need to monitor the logs and XQueue length to determine when a problem has occurred. Once it is fixed, we can re-run certificates with errors using a Django management command (Jenkins can run this automatically on a daily basis):