Skip to content

Removing deactivate enrollment and tranfer enrollment #2533

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Feb 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 0 additions & 36 deletions courses/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,42 +299,6 @@ def deactivate_run_enrollment(
return run_enrollment


def deactivate_program_enrollment(
program_enrollment,
change_status,
keep_failed_enrollments=False, # noqa: FBT002
):
"""
Helper method to deactivate a ProgramEnrollment

Args:
program_enrollment (ProgramEnrollment): The program enrollment to deactivate
change_status (str): The change status to set on the enrollment when deactivating
keep_failed_enrollments: (boolean): If True, keeps the local enrollment record
in the database even if the enrollment fails in edX.

Returns:
tuple of ProgramEnrollment, list(CourseRunEnrollment): The deactivated enrollments
"""
program_run_enrollments = program_enrollment.get_run_enrollments()

deactivated_course_runs = []
for run_enrollment in program_run_enrollments:
if deactivate_run_enrollment(
run_enrollment,
change_status=change_status,
keep_failed_enrollments=keep_failed_enrollments,
):
deactivated_course_runs.append(run_enrollment) # noqa: PERF401

if deactivated_course_runs:
program_enrollment.deactivate_and_save(change_status, no_user=True)
else:
return None, None

return program_enrollment, deactivated_course_runs


def defer_enrollment( # noqa: C901
user,
from_courseware_id,
Expand Down
56 changes: 0 additions & 56 deletions courses/api_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
from courses.api import (
create_program_enrollments,
create_run_enrollments,
deactivate_program_enrollment,
deactivate_run_enrollment,
defer_enrollment,
generate_course_run_certificates,
Expand Down Expand Up @@ -505,61 +504,6 @@ def test_deactivate_run_enrollment_api_fail(self, patches, keep_failed_enrollmen
enrollment.refresh_from_db()
assert enrollment.active is not keep_failed_enrollments

def test_deactivate_program_enrollment(
self,
user,
patches,
program_with_empty_requirements, # noqa: F811
):
"""
deactivate_program_enrollment set the local program enrollment record to inactive as well as all
associated course run enrollments
"""
program_enrollment = ProgramEnrollmentFactory.create(
user=user, program=program_with_empty_requirements
)
course = CourseFactory.create()
program_with_empty_requirements.add_requirement(course)
course_run_enrollments = CourseRunEnrollmentFactory.create_batch(
3,
user=user,
run__course=course,
active=True,
)
for course_run_enrollment in course_run_enrollments:
run = course_run_enrollment.run
with reversion.create_revision():
product = ProductFactory.create(purchasable_object=run)
version = Version.objects.get_for_object(product).first()
order = OrderFactory.create(state=OrderStatus.PENDING, purchaser=user)
LineFactory.create(
order=order, purchased_object=run, product_version=version
)

(
returned_program_enrollment,
returned_run_enrollments,
) = deactivate_program_enrollment(
program_enrollment, change_status=ENROLL_CHANGE_STATUS_REFUNDED
)
program_enrollment.refresh_from_db()
assert program_enrollment.change_status == ENROLL_CHANGE_STATUS_REFUNDED
assert program_enrollment.active is False
assert returned_program_enrollment == program_enrollment
assert {e.id for e in returned_run_enrollments} == {
e.id for e in course_run_enrollments
}
assert patches.edx_unenroll.call_count == len(course_run_enrollments)
assert patches.send_unenrollment_email.call_count == len(course_run_enrollments)
assert patches.sync_hubspot_line_by_line_id.call_count == len(
course_run_enrollments
)
for run_enrollment in course_run_enrollments:
run_enrollment.refresh_from_db()
assert run_enrollment.change_status == ENROLL_CHANGE_STATUS_REFUNDED
assert run_enrollment.active is False
assert run_enrollment.edx_emails_subscription is False

def test_deactivate_run_enrollment_line_does_not_exist(
self,
patches,
Expand Down
121 changes: 0 additions & 121 deletions courses/management/commands/transfer_enrollment.py

This file was deleted.