Don't return Credit as an EnrollmentTrack Group.
EDUCATOR-15
This commit is contained in:
@@ -30,7 +30,8 @@ class EnrollmentTrackUserPartition(UserPartition):
|
||||
def groups(self):
|
||||
"""
|
||||
Return the groups (based on CourseModes) for the course associated with this
|
||||
EnrollmentTrackUserPartition instance.
|
||||
EnrollmentTrackUserPartition instance. Note that only groups based on selectable
|
||||
CourseModes are returned (which means that Credit will never be returned).
|
||||
|
||||
If a course is using the Verified Track Cohorting pilot feature, this method
|
||||
returns an empty array regardless of registered CourseModes.
|
||||
@@ -42,7 +43,7 @@ class EnrollmentTrackUserPartition(UserPartition):
|
||||
|
||||
return [
|
||||
Group(ENROLLMENT_GROUP_IDS[mode.slug], unicode(mode.name))
|
||||
for mode in CourseMode.modes_for_course(course_key, include_expired=True, only_selectable=False)
|
||||
for mode in CourseMode.modes_for_course(course_key, include_expired=True)
|
||||
]
|
||||
|
||||
def from_json(self):
|
||||
@@ -65,7 +66,8 @@ class EnrollmentTrackPartitionScheme(object):
|
||||
def get_group_for_user(cls, course_key, user, user_partition, **kwargs): # pylint: disable=unused-argument
|
||||
"""
|
||||
Returns the Group from the specified user partition to which the user
|
||||
is assigned, via enrollment mode.
|
||||
is assigned, via enrollment mode. If a user is in a Credit mode, the Verified or
|
||||
Professional mode for the course is returned instead.
|
||||
|
||||
If a course is using the Verified Track Cohorting pilot feature, this method
|
||||
returns None regardless of the user's enrollment mode.
|
||||
@@ -88,6 +90,8 @@ class EnrollmentTrackPartitionScheme(object):
|
||||
mode_slug,
|
||||
modes=CourseMode.modes_for_course(course_key, include_expired=True, only_selectable=False),
|
||||
)
|
||||
if course_mode and CourseMode.is_credit_mode(course_mode):
|
||||
course_mode = CourseMode.verified_mode_for_course(course_key)
|
||||
if not course_mode:
|
||||
course_mode = CourseMode.DEFAULT_MODE
|
||||
return Group(ENROLLMENT_GROUP_IDS[course_mode.slug], unicode(course_mode.name))
|
||||
|
||||
@@ -43,15 +43,15 @@ class EnrollmentTrackUserPartitionTest(SharedModuleStoreTestCase):
|
||||
self.course, CourseMode.VERIFIED, "Verified Enrollment Track", min_price=1,
|
||||
expiration_datetime=datetime.now(pytz.UTC) + timedelta(days=-1)
|
||||
)
|
||||
# Note that the credit mode is not selectable-- this is intentional.
|
||||
# Note that the credit mode is not selectable-- this is intentional so we
|
||||
# can test that it is filtered out.
|
||||
create_mode(self.course, CourseMode.CREDIT_MODE, "Credit Mode", min_price=2)
|
||||
|
||||
partition = create_enrollment_track_partition(self.course)
|
||||
groups = partition.groups
|
||||
self.assertEqual(3, len(groups))
|
||||
self.assertEqual(2, len(groups))
|
||||
self.assertIsNotNone(self.get_group_by_name(partition, "Audit Enrollment Track"))
|
||||
self.assertIsNotNone(self.get_group_by_name(partition, "Verified Enrollment Track"))
|
||||
self.assertIsNotNone(self.get_group_by_name(partition, "Credit Mode"))
|
||||
|
||||
def test_to_json_supported(self):
|
||||
user_partition_json = create_enrollment_track_partition(self.course).to_json()
|
||||
@@ -138,7 +138,13 @@ class EnrollmentTrackPartitionSchemeTest(SharedModuleStoreTestCase):
|
||||
def test_enrolled_in_non_selectable(self):
|
||||
create_mode(self.course, CourseMode.CREDIT_MODE, "Credit Enrollment Track", min_price=1)
|
||||
CourseEnrollment.enroll(self.student, self.course.id, mode=CourseMode.CREDIT_MODE)
|
||||
self.assertEqual("Credit Enrollment Track", self._get_user_group().name)
|
||||
|
||||
# The default mode is returned because Credit mode is filtered out, and no verified mode exists.
|
||||
self.assertEqual("Audit", self._get_user_group().name)
|
||||
|
||||
# Now create a verified mode and check that it is returned for the learner enrolled in Credit.
|
||||
create_mode(self.course, CourseMode.VERIFIED, "Verified Enrollment Track", min_price=1)
|
||||
self.assertEqual("Verified Enrollment Track", self._get_user_group().name)
|
||||
|
||||
def test_using_verified_track_cohort(self):
|
||||
VerifiedTrackCohortedCourse.objects.create(course_key=self.course.id, enabled=True).save()
|
||||
|
||||
Reference in New Issue
Block a user