Skip to content

Commit a2f4245

Browse files
authored
Reset change_status on all requests to create_run_enrollment (#2566)
1 parent 31513df commit a2f4245

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

courses/api.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ def create_run_enrollments( # noqa: C901
108108
in edX via API.
109109
Updates the enrollment mode and change_status if the user is already enrolled in the course run
110110
and now is changing the enrollment mode, (e.g. pays or re-enrolls again or getting deferred)
111+
Possible cases are:
112+
1. Downgrade: Verified to Audit via a deferral
113+
2. Upgrade: Audit to Verified via a payment
114+
3. Reactivation: Audit to Audit or Verified to Verified via a re-enrollment
111115
112116
Args:
113117
user (User): The user to enroll
@@ -188,9 +192,9 @@ def _enroll_learner_into_associated_programs():
188192
if not created:
189193
enrollment_mode_changed = mode != enrollment.enrollment_mode
190194
enrollment.edx_enrolled = edx_request_success
191-
if change_status is not None:
192-
enrollment.change_status = change_status
193-
enrollment.save_and_log(None)
195+
# This resets the change_status if the enrollment was reactivated or Upgraded/Downgraded
196+
enrollment.change_status = change_status
197+
enrollment.save_and_log(None)
194198
# Case (Upgrade): When user was enrolled in free mode and now enrolls in paid mode (e.g. Verified)
195199
# Case (Downgrade): When user was enrolled in paid mode and downgrades to a free mode in case
196200
# of deferral(e.g. Audit)

0 commit comments

Comments
 (0)