Commit Graph

139 Commits

Author SHA1 Message Date
Justin Hynes
9fbc6e3bf4 feat: purge name from certificate records during user retirement (#34799)
[APER-3241]

This PR updates the retirement pipeline to purge learners' names from certificate records when their account is being retired.

It also introduces a new management command that can be used by Open edX operators to purge the leftover name data (PII data) from the `certificates_generatedcertificate` table. This is designed as a one-time use data fixup, as the retirement functionality should clean this moving forward.
2024-05-16 09:17:40 -04:00
Deborah Kaplan
b4bf07660e feat: fixes from code review
improving a comment

FIXES: APER-2851
2024-01-18 15:14:24 +00:00
Deborah Kaplan
a35a6f908e feat: linter
Fixing a linter air

FIXES: APER-2851
2024-01-18 13:49:22 +00:00
Deborah Kaplan
e0ef013f02 feat: fixing some codestyle/lint errors
not sure why the manual linter didn't complain

FIXES: APER-2851
2024-01-17 22:00:30 +00:00
Deborah Kaplan
994b8a3d49 feat: adding tests to modify cert template
Re-factored to make the code more testable, and added some more tests,
also improved dry run logging

FIXES: APER-2851
2024-01-17 21:41:21 +00:00
Deborah Kaplan
cccb960f20 feat:tests for certificate template modifier
still needs mocks for all tests to work

FIXES: APER-2851
2024-01-16 23:07:51 +00:00
Deborah Kaplan
392110bdda feat: pep8 fixes
pep8

FIXES: APER-2851
2024-01-11 22:27:47 +00:00
Deborah Kaplan
ce48516c90 feat: fixing a long line problem
fixing a long line problem

FIXES: APER-2851
2024-01-11 22:08:48 +00:00
Deborah Kaplan
9657645fad feat: adds a certificate template modifier
adds a management command to modify certificate templates, with a dry
run option. Inherently unsafe; just as a search and replace on the first
string match.

TODO:
* unit tests
* make sure the multi-line string replacements work via django admin

FIXES: APER-2851
2024-01-11 21:45:34 +00:00
Maria Grimaldi
e8fa890af7 feat: add filter before certificate creation starts
- Add filters interactions with code that used generate_certificate_task
- Add unit-testing for filters
- Upgrade to latest library update
2022-05-06 13:57:21 -04:00
Simon Chen
fcb29a6834 feat: introduce new setting to control IDV requirements for certificates (#30318)
Co-authored-by: Simon Chen <schen@edx-c02fw0guml85.lan>
2022-04-28 11:10:04 -04:00
Bianca Severino
af81b3a609 chore: replace integrity signature flag with django setting 2022-02-15 09:57:00 -05:00
alangsto
68dd185a0a feat: update certificate generation command (#29761)
MST-1161. The regeneration command for unverified certs has to be used to regenerate all unverified certs after the release of the honor code feature on January 19th. Because of this, the command is now updated to regenerate all unverified certificates if no specific course keys are provided. I've also included an option to include excluded keys, so that all unverified certs, except for those in an excluded course key, can be regenerated.
2022-01-13 14:32:20 -05:00
Jawayria
826fc33274 chore: Applied lint-amnesty on lms/djangoapps/{certificates, course_goals} 2021-12-17 16:16:51 +05:00
Andy Shultz
5ec9fca8d4 feat: provide command to regenerate certs for honor code courses
Only courses which actually have honor code on and only unverified
certs will be regenerated. All other certs wouldn't change so
don't cause trouble.

MST-855
2021-10-26 14:36:28 -04:00
Justin Hynes
ecd257ae29 feat!: Remove temp certificates mgmt cmd
[MICROBA-1311]
- Remove temporary management command used to fix records incorrectly created with a default `mode` of "honor".
2021-07-06 15:51:32 -04:00
Christie Rice
384bc6b514 fix: Fix cert status (#28097)
MICROBA-1372
2021-07-06 12:48:21 -04:00
Justin Hynes
ad9c580ae1 Merge pull request #28064 from edx/jhynes/microba-1311_fix
feat: Add temporary mgmt cmd to fix certificate data
2021-07-01 08:39:11 -04:00
Justin Hynes
c40e772d04 feat: Add temporary mgmt cmd to fix certificate data
[MICROBA-1311]
* Add temporary mgmt cmd to certificates app to fix certificate records with incorrect data stemming from CR-3792.
2021-06-30 12:58:15 -04:00
Christie Rice
e0b3829252 feat!: Remove management commands for V1 of course certificates, and PDF course certificates. (#28053)
These have been replaced by V2 of course certificates, and the cert_generation management command.

DEPR-155 MICROBA-1357 MICROBA-1358
2021-06-30 09:09:03 -04:00
Christie Rice
59dc0a4a39 feat!: Enable v2 of course certificates for all course runs (#27817)
This moves all course runs that use certificates over to V2 of course certificates, and disables the option for a course run to use V1 of course certificates.

MICROBA-1082
2021-06-15 15:08:40 -04:00
Christie Rice
417b2cc959 fix: Handle missing course overviews (#27849)
MICROBA-1082
2021-06-14 12:57:45 -04:00
Albert (AJ) St. Aubin
c37e88fdbf refactor: Move CertificateStatuses to data.py file per OEP-49
[MICROBA-678]

To allow access to CertificateStatuses constants in other Django apps we are moving the
CertificateStatuses enum to data.py per OEP-49.
2021-06-08 08:56:21 -04:00
Albert (AJ) St. Aubin
1b13ff4c21 refactor!: Removing the cert_whitelist management command
[MICROBA-1052]

We are removing the cert_whitelist management command because it does
not provide a clear value with the current state of Certificate
generation on edx-platform. It adds a user to the whitelist table, but
does not generate a certificate.

We recommend using the exceptions tab in the Instructor tab of the LMS
Course.
2021-05-19 07:11:12 -04:00
Justin Hynes
70810879e0 refactor: remove unused course arguments from certificate generation functions
[MICROBA-1238]
- Remove unused `course` arguments from certificate generation functions

Part of our cleanup after removing use of the modulestore from the Certificates app.
2021-05-14 15:38:43 -04:00
Binod Pant
da9afe6290 fix: 🐛 ENT-4525 fix learner portal experience when missing courseEnrollment records (#27611)
* fix: 🐛 ENT-4525 fix learner portal experience courseEnrollment records are missing

sometimes integrations may create EnterpriseCourseEnrollments but for some reason missing courseEnrollment, in this case we want to just filter out the EnterpriseCourseEnrollments instead of erroring the learner poratl

ENT-4525

* fix: pylint fixes

pylint fixes
2021-05-13 07:27:17 -04:00
Justin Hynes
462ccf46ab Merge pull request #27607 from edx/jhynes/microba-1178_modulestore-cont
refactor: remove use of modulestore in certificates app
2021-05-12 14:10:36 -04:00
Justin Hynes
ee5c881a46 refactor: remove use of modulestore in certificates app
[MICROBA-1178]

* Remove use of modulestore in `queue.py`
* Remove use of modulestore in `ungenerated_certs.py`
* Remove use of modulestore in `resubmit_error_certificates.py`
* Update unit tests in `test_cert_management.py`
2021-05-12 13:35:32 -04:00
Christie Rice
4854b2eb17 refactor: Use api instead of calling the certificate whitelist model directly (#27606)
MICROBA-1212
2021-05-12 11:40:32 -04:00
Christie Rice
82bf0411ca test: Use allowlist factory (#27490)
MICROBA-1021
2021-05-03 12:53:36 -04:00
Usama Sadiq
60f49d4048 refactor: pyupgrade second iteration (#27442) 2021-05-03 17:13:15 +05:00
Christie Rice
6e1f700cdc feat: Generate more certificate status for V2 course certs (#27326)
MICROBA-1106
2021-04-27 09:40:06 -04:00
Usama Sadiq
ab41a7daee refactor: Apply lint-amnesty on pylint violations 2021-04-20 21:43:59 +05:00
stvn
43698fff0a refactor: Move get_course_by_id helper from LMS to core
This helper is used by the LMS, CMS, _and_ `openedx.core`,
so let's move it to `openedx.core` to reduce import complexity.

The following files no longer import from LMS:
- cms/djangoapps/contentstore/management/commands/edit_course_tabs.py
- lms/djangoapps/ccx/migrations/0006_set_display_name_as_override.py
- openedx/core/djangoapps/ccxcon/api.py
- openedx/core/djangoapps/verified_track_content/models.py
- openedx/features/course_experience/plugins.py

Note: The LTI XBlock has a dependency on this import path (!?);
a fix can be found here [1].

- [1] https://github.com/edx/xblock-lti-consumer/pull/154
2021-04-13 23:25:48 -07:00
Christie Rice
3d20c848f8 style: Use constants for certificate status. Update certificate status and grade documentation. (#27250)
MICROBA-1074
2021-04-07 09:38:56 -04:00
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
Justin Hynes
346fe90002 chore: remove cert_allowlist_generation management command
[MICROBA-1100]
* Remove `cert_allowlist_generation` management command. This has been replaced by the `cert_generation` management command which can handle generation of allowlist and v2 certificates.
* Remove AllowListGenerationConfiguration configuration model.
2021-04-01 08:53:14 -04:00
Justin Hynes
6b38debfeb feat: Update cert_generation mgmt command with ability to read arguments from config model
[MICROBA-1100]
* Add CertificationGenerationCommandConfiguration model that will store the command arguments for the `cert_generation` mgmt command
* Add ability to add entries to the CertificationGenerationCommandConfiguration through Django admin
* Update mgmt command with ability to read arguments from the config model/database
* Fix failing test in `test_cert_generation.py`
* Add new test for missing `users` argument in `test_cert_generation.py`
2021-04-01 07:39:33 -04:00
Christie Rice
8198606138 feat: Refactor code to check both regular and allowlist V2 certs (#27156)
MICROBA-1039
2021-03-30 10:23:23 -04:00
Christie Rice
dabad9fdfd feat: Add cert_generation management command (#27131)
MICROBA-1078
2021-03-25 11:01:41 -04:00
Usama Sadiq
bd9bb424cd refactor: ran pyupgrade on lms/djangoapps/certificates (#26740) 2021-03-12 14:47:30 +05:00
Justin Hynes
32685a7999 MICROBA-1025 | Update cert_whitelist.py management command
[MICROBA-1025]
- Update management command to use the same logic that the Instructor Dashboard uses
- Fix bug in management command where processing stopped when encountering a user that did not exist
- Add more logging
- Add and update tests where needed
2021-03-09 14:45:44 -05:00
Awais Jibran
ce0fc3804d refactor: use q objects when fetching user using an identifier #26683 (#26823) 2021-03-04 15:16:54 +05:00
Christie Rice
1b1781247c MICROBA-1032 Remove command in favor of querying the db for more detailed info (#26787) 2021-03-03 09:33:21 -05:00
Awais Jibran
589716144c refactor: use q objects when fetching user using an identifier (#26726)
* refactor: use q objects when fetching user using an identifier #26683

* Nit
2021-03-03 10:45:48 +05:00
Christie Rice
f1ff795271 MICROBA-1032 Remove command in favor of using the allowlist (#26786) 2021-03-02 14:40:19 -05:00
Christie Rice
e5872cf8f2 MICROBA-1032 Add allowlist check and move tests (#26785) 2021-03-02 14:04:03 -05:00
usamasadiq
84bb9faa3f refactor: ran pyupgrade on lms/djangoapps/certificates 2021-02-25 19:58:39 +05:00
Matt Tuchfarber
55d9e18495 Update mgmt cmds to use user_ids instead of PII 2021-02-22 10:30:35 -05:00
Christie Rice
6b0bc6389a MICROBA-918 Update allowlist check to handle more signals (#26606) 2021-02-18 10:48:53 -05:00