diff --git a/common/djangoapps/student/models.py b/common/djangoapps/student/models.py index 3b830d356a..f8b9e70ab0 100644 --- a/common/djangoapps/student/models.py +++ b/common/djangoapps/student/models.py @@ -875,9 +875,6 @@ class CourseEnrollment(models.Model): cls.create_or_update_enrollment(user, course_id, record.mode, is_active=False) unenroll_done.send(sender=cls, course_enrollment=record) - # TODO: Do we still need to emit this event since unenroll now calls create_or_update_enrollment? - #record.emit_event(EVENT_NAME_ENROLLMENT_DEACTIVATED) - except cls.DoesNotExist: err_msg = u"Tried to unenroll student {} from {} but they were not enrolled" log.error(err_msg.format(user, course_id)) @@ -978,6 +975,7 @@ class CourseEnrollment(models.Model): CourseEnrollment.create_or_update_enrollment(self.user, self.course_id, self.mode, False) def change_mode(self, mode): + """Changes this `CourseEnrollment` record's mode to `mode`. Saves immediately.""" self.mode = mode CourseEnrollment.create_or_update_enrollment(self.user, self.course_id, mode, self.is_active) diff --git a/lms/djangoapps/shoppingcart/models.py b/lms/djangoapps/shoppingcart/models.py index 8a91a77286..160769946c 100644 --- a/lms/djangoapps/shoppingcart/models.py +++ b/lms/djangoapps/shoppingcart/models.py @@ -506,8 +506,7 @@ class CertificateItem(OrderItem): "Could not submit verification attempt for enrollment {}".format(self.course_enrollment) ) - self.course_enrollment.mode = self.mode - self.course_enrollment.save() + self.course_enrollment.change_mode(self.mode) self.course_enrollment.activate() @property