From 17f0a4fb521ad1200cbb12a9e400c5429f2febb6 Mon Sep 17 00:00:00 2001 From: Matt Hughes Date: Wed, 20 Feb 2019 12:40:53 -0500 Subject: [PATCH] Allow educators to partition masters students as content groups JIRA:EDUCATOR-4022 --- common/djangoapps/course_modes/models.py | 5 ++++- openedx/core/djangoapps/credentials/signals.py | 2 +- openedx/core/djangoapps/credentials/tests/test_signals.py | 2 ++ openedx/core/djangoapps/programs/tasks/v1/tasks.py | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/common/djangoapps/course_modes/models.py b/common/djangoapps/course_modes/models.py index 91a517df98..0f3b90c32b 100644 --- a/common/djangoapps/course_modes/models.py +++ b/common/djangoapps/course_modes/models.py @@ -169,11 +169,14 @@ class CourseMode(models.Model): NON_VERIFIED_MODES = [HONOR, AUDIT, NO_ID_PROFESSIONAL_MODE] # Modes that allow a student to earn credit with a university partner - CREDIT_MODES = [CREDIT_MODE, MASTERS] + CREDIT_MODES = [CREDIT_MODE] # Modes that are eligible to purchase credit CREDIT_ELIGIBLE_MODES = [VERIFIED, PROFESSIONAL, NO_ID_PROFESSIONAL_MODE] + # Modes for which certificates/programs may need to be updated + CERTIFICATE_RELEVANT_MODES = CREDIT_MODES + CREDIT_ELIGIBLE_MODES + [MASTERS] + # Modes that are allowed to upsell UPSELL_TO_VERIFIED_MODES = [HONOR, AUDIT] diff --git a/openedx/core/djangoapps/credentials/signals.py b/openedx/core/djangoapps/credentials/signals.py index 95a2a45550..dd9d0311fd 100644 --- a/openedx/core/djangoapps/credentials/signals.py +++ b/openedx/core/djangoapps/credentials/signals.py @@ -17,7 +17,7 @@ log = getLogger(__name__) # "interesting" here means "credentials will want to know about it" -INTERESTING_MODES = CourseMode.CREDIT_ELIGIBLE_MODES + CourseMode.CREDIT_MODES +INTERESTING_MODES = CourseMode.CERTIFICATE_RELEVANT_MODES INTERESTING_STATUSES = [ CertificateStatuses.notpassing, CertificateStatuses.downloadable, diff --git a/openedx/core/djangoapps/credentials/tests/test_signals.py b/openedx/core/djangoapps/credentials/tests/test_signals.py index 94e334a91b..b96aa5fdd1 100644 --- a/openedx/core/djangoapps/credentials/tests/test_signals.py +++ b/openedx/core/djangoapps/credentials/tests/test_signals.py @@ -43,6 +43,8 @@ class TestCredentialsSignalsSendGrade(TestCase): [True, 'no-id-professional', 'downloadable'], [True, 'credit', 'downloadable'], [True, 'verified', 'notpassing'], + [True, 'masters', 'downloadable'], + [True, 'masters', 'notpassing'], [False, 'audit', 'downloadable'], [False, 'professional', 'generating'], [False, 'no-id-professional', 'generating'], diff --git a/openedx/core/djangoapps/programs/tasks/v1/tasks.py b/openedx/core/djangoapps/programs/tasks/v1/tasks.py index 69c492bff4..24ced118c1 100644 --- a/openedx/core/djangoapps/programs/tasks/v1/tasks.py +++ b/openedx/core/djangoapps/programs/tasks/v1/tasks.py @@ -304,7 +304,7 @@ def award_course_certificate(self, username, course_run_key): username ) return - if certificate.mode in CourseMode.CREDIT_ELIGIBLE_MODES + CourseMode.CREDIT_MODES: + if certificate.mode in CourseMode.CERTIFICATE_RELEVANT_MODES: try: course_overview = CourseOverview.get_from_id(course_key) except (CourseOverview.DoesNotExist, IOError):