diff --git a/docs/decisions/0004-downstream-effect-events.rst b/docs/decisions/0004-downstream-effect-events.rst index c2e53466..24bcd234 100644 --- a/docs/decisions/0004-downstream-effect-events.rst +++ b/docs/decisions/0004-downstream-effect-events.rst @@ -64,11 +64,12 @@ Events to be implemented as part of this decision: Event Type Production Context Data sent Consumer Location Functions Called General Context for Calls Expected Result ====================================== ================================================================================================ =========================================================================================== ============================================ =============================================== ========================================================================= ====================================================================================== Grades Override When an exam attempt is rejected. user_id, course_key_or_id, usage_key_or_id, earned_all, earned_graded, overrider, comment lms/djangoapps/grades/signals.py override_subsection_grade in api.py When we need to override a grade from any service. A grade override object is created or modified in the grades service within the LMS. + Invalidate Certificate When an exam attempt is rejected. user_id, course_key_or_id lms/djangoapps/certificates/signals.py invalidate_certificate in services.py When we need to invalidate a learner's certificate. A certificate object's status is set to "unavailable". Undo Grades Override When an exam attempt is verified after previously being rejected, OR when it is deleted/reset. user_id, course_key_or_id, usage_key_or_id lms/djangoapps/grades/signals.py undo_override_subsection_grade in services.py When we need to undo a grade override from any service. A grade override object is deleted in the grades service within the LMS. Instructor Reset Subsection When an exam attempt is deleted/reset. username, course_id, content_id, requesting_user lms/djangoapps/instructor/signals.py reset_student_attempts in enrollments.py When we need to reset a student’s state in a subsection. A learner's state for a subsection is reset. + Remove Credit Requirement Status When an exam attempt is deleted/reset. user_id, course_key_or_id, req_namespace, req_name openedx/core/djangoapps/credits/signals.py remove_credit_requirement_status in services.py When we need to remove a learner's credit requirement status. A credit requirement status object is deleted within the LMS. + Set Credit Requirement Status When an exam attempt is completed. user_id, course_key_or_id, req_namespace, req_name, status openedx/core/djangoapps/credits/signals.py set_credit_requirement_status in services.py When we need to create or modify a learner's credit requirement status. A credit requirement status object is created or modified within the LMS. Instructor Mark Subsection Completed When an exam attempt is completed. username, content_id lms/djangoapps/instructor/signals.py update_exam_completion_task in tasks.py When we need to mark a subsection as completed. A subsection is marked completed for a learner. - Invalidate Certificate When an exam attempt is rejected. user_id, course_key_or_id lms/djangoapps/certificates/signals.py invalidate_certificate in services.py When we need to invalidate a learner's certificate. A certificate object's status is set to "unavailable". - Set Credit Requirement Status When exam attempt is completed. user_id, course_key_or_id, req_namespace, req_name, status openedx/core/djangoapps/credits/signals.py set_credit_requirement_status in services.py When we need to create or modify a learner's credit requirement status. A credit requirement status object is created or modified within the LMS. ====================================== ================================================================================================ =========================================================================================== ============================================ =============================================== ========================================================================= ====================================================================================== Consequences