diff --git a/common/djangoapps/student/views/management.py b/common/djangoapps/student/views/management.py index eac799c5e1f0..8701919d3725 100644 --- a/common/djangoapps/student/views/management.py +++ b/common/djangoapps/student/views/management.py @@ -434,6 +434,7 @@ def change_enrollment(request, check_access=True): except UnenrollmentNotAllowed as exc: return HttpResponseBadRequest(str(exc)) + log.info("User %s unenrolled from %s; sending REFUND_ORDER", user.username, course_id) REFUND_ORDER.send(sender=None, course_enrollment=enrollment) return HttpResponse() else: diff --git a/lms/djangoapps/commerce/signals.py b/lms/djangoapps/commerce/signals.py index eaf85bdfba37..51405a020dab 100644 --- a/lms/djangoapps/commerce/signals.py +++ b/lms/djangoapps/commerce/signals.py @@ -2,7 +2,6 @@ Signal handling functions for use with external commerce service. """ - import logging from crum import get_current_request @@ -21,13 +20,15 @@ @receiver(REFUND_ORDER) def handle_refund_order(sender, course_enrollment=None, **kwargs): """ - Signal receiver for unenrollments, used to automatically initiate refunds + Signal receiver for un-enrollments, used to automatically initiate refunds when applicable. """ if not is_commerce_service_configured(): + log.info("Commerce service not configured, skipping refund") return if course_enrollment and course_enrollment.refundable(): + log.info("Handling refund for course enrollment %s", course_enrollment.course_id) try: request_user = get_request_user() or course_enrollment.user if isinstance(request_user, AnonymousUser): @@ -36,7 +37,13 @@ def handle_refund_order(sender, course_enrollment=None, **kwargs): # construct a client to call Otto back anyway, because # the client does not work anonymously, and furthermore, # there's certainly no need to inform Otto about this request. + log.info( + "Anonymous user attempting to initiate refund for course [%s]", + course_enrollment.course_id, + ) return + log.info("Initiating refund_seat for user [%s] for course enrollment %s", + course_enrollment.user.id, course_enrollment.course_id) refund_seat(course_enrollment, change_mode=True) except Exception: # pylint: disable=broad-except # don't assume the signal was fired with `send_robust`. @@ -47,6 +54,13 @@ def handle_refund_order(sender, course_enrollment=None, **kwargs): course_enrollment.user.id, course_enrollment.course_id, ) + elif course_enrollment: + log.info( + "Not refunding seat for course enrollment %s, as its not refundable", + course_enrollment.course_id + ) + else: + log.info("Not refunding seat for course due to missing course enrollment") def get_request_user():