Skip to content

Commit

Permalink
Add unverify option to google sheets plugin (#1717)
Browse files Browse the repository at this point in the history
  • Loading branch information
annagav committed Jul 6, 2023
1 parent a6f78e8 commit 67d5259
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 8 deletions.
25 changes: 22 additions & 3 deletions courses/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,11 @@
get_edx_grades_with_users,
unenroll_edx_course_run,
)
from openedx.constants import EDX_DEFAULT_ENROLLMENT_MODE, EDX_ENROLLMENT_VERIFIED_MODE
from openedx.constants import (
EDX_DEFAULT_ENROLLMENT_MODE,
EDX_ENROLLMENT_VERIFIED_MODE,
EDX_ENROLLMENT_AUDIT_MODE,
)
from openedx.exceptions import (
EdxApiEnrollErrorException,
NoEdxApiAuthError,
Expand Down Expand Up @@ -452,19 +456,34 @@ def defer_enrollment(
from_enrollment = CourseRunEnrollment.all_objects.get(
user=user, run__courseware_id=from_courseware_id
)
to_run = (
CourseRun.objects.get(courseware_id=to_courseware_id)
if to_courseware_id
else None
)

if to_run is None:
downgraded_enrollments, _ = create_run_enrollments(
user=user,
runs=[from_enrollment.run],
keep_failed_enrollments=True,
mode=EDX_ENROLLMENT_AUDIT_MODE,
force_enrollment=True,
)
return downgraded_enrollments, None

if not force and not from_enrollment.active:
raise ValidationError(
"Cannot defer from inactive enrollment (id: {}, run: {}, user: {}). "
"Set force=True to defer anyway.".format(
from_enrollment.id, from_enrollment.run.courseware_id, user.email
)
)
to_run = CourseRun.objects.get(courseware_id=to_courseware_id)
if from_enrollment.run == to_run:
raise ValidationError(
"Cannot defer to the same course run (run: {})".format(to_run.courseware_id)
)
if not to_run.is_not_beyond_enrollment:
if not force and not to_run.is_not_beyond_enrollment:
raise ValidationError(
"Cannot defer to a course run that is outside of its enrollment period (run: {}).".format(
to_run.courseware_id
Expand Down
8 changes: 3 additions & 5 deletions sheets/deferrals_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,10 @@ def deferrals_process_request(
from_courseware_id = deferral_request_row.from_courseware_id
to_courseware_id = deferral_request_row.to_courseware_id

deferral_api_success = defer_enrollment(
defer_enrollment(
user,
from_courseware_id,
to_courseware_id,
force=True,
)
if deferral_api_success:
return DeferralResult(ResultType.PROCESSED)

return DeferralResult(ResultType.FAILED)
return DeferralResult(ResultType.PROCESSED)

0 comments on commit 67d5259

Please sign in to comment.