.. _Instructor_Event_Types: ################### Course Team Events ################### This section lists events that are generated by interactions on the instructor dashboard. Users who have the Admin or Staff role can select **Instructor** in the LMS to access the instructor dashboard. For a list of events generated by learner interactions in the LMS other than on the instructor dashboard, see :ref:`Student_Event_Types`. For a complete, alphabetical list of events, see the :ref:`tracking_log_event_list`. .. contents:: :local: :depth: 1 The descriptions that follow include what each event represents, the system component it originates from, the history of any changes made to the event over time, and member fields in addition to the common ``context`` or ``event`` fields. .. _instructor_cohort_events: **************************** Cohort Events (Course Team) **************************** In addition to the cohort events that are generated when cohorts are created and users are assigned to them (see :ref:`student_cohort_events`), actions by course team members also generate cohort-related events. .. contents:: :local: :depth: 1 ================================= ``edx.cohort.creation_requested`` ================================= When a course team member manually creates a cohort on the **Cohorts** page of the instructor dashboard, the server emits an ``edx.cohort.creation_requested`` event. **Event Source**: Server **History**: Added 7 Oct 2014. ``event`` **Member Fields**: .. list-table:: :widths: 15 15 60 :header-rows: 1 * - Field - Type - Details * - ``cohort_id`` - number - The numeric ID of the cohort. * - ``cohort_name`` - string - The display name of the cohort. ================================= ``edx.cohort.user_add_requested`` ================================= When a course team member adds a student to a cohort on the **Cohorts** page of the instructor dashboard, the server emits an ``edx.cohort.user_add_requested`` event. Course team members can add students to a cohort individually, or by uploading a .csv file of student cohort assignments. **Event Source**: Server **History**: Added 7 Oct 2014. ``event`` **Member Fields**: .. list-table:: :widths: 15 15 60 :header-rows: 1 * - Field - Type - Details * - ``cohort_id`` - number - The numeric ID of the cohort. * - ``cohort_name`` - string - The display name of the cohort. * - ``previous_cohort_id`` - number - The numeric ID of the cohort that the user was previously assigned to. Null if the user was not previously assigned to a cohort. * - ``previous_cohort_name`` - string - The display name of the cohort that the user was previously assigned to. Null if the user was not previously assigned to a cohort. * - ``user_id`` - number - The numeric ID (from ``auth_user.id``) of the added user. .. _course_reporting_events: ************************* Course Reporting Events ************************* Events are emitted when course team members request reports of various types from the instructor dashboard in the LMS. The following reporting events contain fields in addition to the common fields, unless it is otherwise indicated. .. contents:: :local: :depth: 1 .. _edx.instructor.report.downloaded: ====================================================== ``edx.instructor.report.downloaded`` ====================================================== The browser emits an ``edx.instructor.report.downloaded`` event when the user selects a report link on the instructor dashboard to download a report. **History**: Added 8 May 2015. **Component**: Instructor Dashboard **Event Source**: Browser ``event`` **Member Fields**: .. list-table:: :widths: 20 20 40 :header-rows: 1 * - Field - Type - Details * - ``report_url`` - string - The URL to the report file. .. _edx.instructor.report.requested: ====================================================== ``edx.instructor.report.requested`` ====================================================== The server emits an ``edx.instructor.report.requested`` event when the user clicks to request the generation of a report on the instructor dashboard. **History**: Added 8 May 2015. **Component**: Instructor Dashboard **Event Source**: Server ``event`` **Member Fields**: .. list-table:: :widths: 20 20 40 :header-rows: 1 * - Field - Type - Details * - ``report_type`` - string - The type of report that was requested. .. _list_forum_roles: =========================== Discussion Role List Events =========================== .. previously a comma-separated list; "Rows identical after the second column" (which means the name and description columns) were combined Discussion role list events are emitted when a course team member selects a specific discussion role on the **Membership** page of the instructor dashboard to view the list of users who currently have this role. * ``list-forum-admins`` * ``list-forum-community-TAs`` * ``list-forum-mods`` **Component**: Instructor Dashboard **Event Source**: Server ``event`` **Member Fields**: .. list-table:: :widths: 40 40 :header-rows: 1 * - Field - Type * - ``course`` - string .. _manage_forum_roles: ======================================= Discussion Role Management Events ======================================= .. previously a comma-separated list; "Rows identical after the second column" (which means the name and description columns) were combined Discussion role management events are emitted when a course team member with Admin privileges adds a user to, or removes a user from, a particular discussion role in the **Course Team Management** section of the instructor dashboard **Membership** page. * ``add-forum-admin`` * ``add-forum-community-TA`` * ``add-forum-mod`` * ``remove-forum-admin`` * ``remove-forum-community-TA`` * ``remove-forum-mod`` **Component**: Instructor Dashboard **Event Source**: Server ``event`` **Member Fields**: .. list-table:: :widths: 40 40 :header-rows: 1 * - Field - Type * - ``course`` - string .. _reporting_events_with_only_common_fields: ====================================================== Course Reporting Events Containing only Common Fields ====================================================== The following reporting events contain only fields that are common to all events. For more information about the common fields, see :ref:`common`. * ``dump-answer-dist-csv`` * ``dump-graded-assignments-config`` * ``dump-grades`` * ``dump-grades-csv`` * ``dump-grades-csv-raw`` * ``dump-grades-raw`` * ``list-beta-testers`` * ``list-instructors`` * ``list-staff`` * ``list-students`` **Event Source**: Server .. _grading_events: ***************************** Grading-Related Events ***************************** Grading-related events are emitted when grades at the subsection or course level are updated. Changes to grades can result from a learner action such as submitting a response to a problem, a course team member action on the Instructor Dashboard such as rescoring a problem or deleting a learner's state for a problem, or a course-level action such as calculation of a learner's final grade for a course. This section presents grading-related events alphabetically. **Component**: LMS, Instructor Dashboard **Event Source**: Server **History**: Grading-related events were added on 14 Dec 2016. .. contents:: :local: :depth: 1 .. _edx_grades_course_grade_calculated: ====================================== ``edx.grades.course.grade_calculated`` ====================================== After a learner's updated subsection score is successfully saved to the database (which triggers an ``edx.grades.subsection.grade_calculated`` event), the learner's grade for the course is updated as a result. When a learner's updated grade for a course is successfully saved to the database, the server emits an ``edx.grades.course.grade_calculated`` event. **Event Source**: Server ``event`` **Member Fields**: In addition to the :ref:`common` ``context`` member fields, this event type also includes the following ``event`` member fields. .. list-table:: :widths: 15 15 60 :header-rows: 1 * - Field - Type - Details * - ``course_edited_on`` - datetime - The timestamp of the most recent edit to the course at the time the grade was calculated. * - ``course_version`` - string - The version of the course for which the problem was submitted. * - ``grading_policy_hash`` - string - A hash of the grading policy at the time that the grade was calculated. This field might be useful for identifying whether the course content was the same for two grades. * - ``letter_grade`` - string - The string or alphabetical letter representing the learner's course grade, as defined by the course's grading policy. * - ``percent`` - float - The learner's course grade, expressed as a percentage. * - ``event_transaction_id`` - string - The unique identifier for tracing transactional events back to learner or instructor actions. * - ``event_transaction_type`` - string - A readable string representing the learner or course team action that triggered this event. Possible values are ``edx.grades.problem.submitted``, ``edx.grades.problem.rescored``, ``edx.grades.problem.state_deleted``, ``edx.grades.subsection.grade_calculated``, and ``edx.grades.course.grade_calculated``. .. _edx_grades_problem_rescored: ====================================== ``edx.grades.problem.rescored`` ====================================== When a course team member successfully rescores a learner's problem submission, the server emits an ``edx.grades.problem.rescored`` event. **Event Source**: Server ``event`` **Member Fields**: In addition to the :ref:`common` ``context`` member fields, this event type also includes the following ``event`` member fields. .. list-table:: :widths: 15 15 60 :header-rows: 1 * - Field - Type - Details * - ``instructor_id`` - string - The identifier for the course team member who initiated the rescore. * - ``new_weighted_earned`` - number - The learner's weighted score for the problem, after the rescore. * - ``new_weighted_possible`` - number - The weighted maximum score for the problem, after the rescore. * - ``only_if_higher`` - boolean - Indicates whether the "rescore only if higher" option was selected when the problem was rescored. * - ``problem_id`` - string - The identifier for the problem in the form of a serialized usage key. The ``edx.grades.problem.rescored`` event also includes the following ``event`` member fields. These fields serve the same purpose for this event as they do for the :ref:`edx_grades_course_grade_calculated` event. * ``event_transaction_id`` * ``event_transaction_type`` .. _edx_grades_problem_score_overridden: ======================================= ``edx.grades.problem.score_overridden`` ======================================= When a course team member successfully overrides a learner's score for a problem, the server emits an ``edx.grades.problem.score_overridden`` event. **Event Source**: Server **History**: Added 19 Jul 2017. ``event`` **Member Fields**: In addition to the :ref:`common` ``context`` member fields, this event type also includes the following ``event`` member fields. These fields serve the same purpose for this event as they do for the :ref:`edx_grades_problem_rescored` event. * ``event_transaction_id`` * ``event_transaction_type`` * ``instructor_id`` * ``new_weighted_earned`` * ``new_weighted_possible`` * ``only_if_higher`` * ``problem_id`` .. _edx_grades_problem_state_deleted: ====================================== ``edx.grades.problem.state_deleted`` ====================================== When a course team member deletes the state for a learner's problem submission, the server emits an ``edx.grades.problem.state_deleted`` event. **Event Source**: Server ``event`` **Member Fields**: In addition to the :ref:`common` ``context`` member fields, this event type also includes the following ``event`` member fields. These fields serve the same purpose for this event as they do for the :ref:`edx_grades_problem_rescored` event. * ``instructor_id`` * ``problem_id`` * ``event_transaction_id`` * ``event_transaction_type`` .. _edx_grades_problem_submitted: ====================================== ``edx.grades.problem.submitted`` ====================================== When a learner's response to a problem is submitted and successfully saved, the server emits an ``edx.grades.problem.submitted`` event. **Event Source**: Server ``event`` **Member Fields**: In addition to the :ref:`common` ``context`` member fields, this event type also includes the following ``event`` member fields. .. list-table:: :widths: 15 15 60 :header-rows: 1 * - Field - Type - Details * - ``weight`` - number - The weight of this problem. * - ``weighted_earned`` - number - The learner's weighted score for this problem. * - ``weighted_possible`` - number - The weighted maximum possible score for this problem. The ``edx.grades.problem.submitted`` event also includes the following ``event`` member fields. These fields serve the same purpose for this event as they do for the :ref:`edx_grades_course_grade_calculated` and :ref:`edx_grades_problem_rescored` events. * ``problem_id`` * ``event_transaction_id`` * ``event_transaction_type`` .. _edx_grades_subsection_grade_calculated: ========================================== ``edx.grades.subsection.grade_calculated`` ========================================== After a learner has submitted a response to a problem (which triggers the ``edx.grades.problem.submitted`` event), the score for the subsection that contains the problem is recalculated. When the updated subsection score is successfully saved to the database, the server emits an ``edx.grades.subsection.grade_calculated`` event. **Event Source**: Server ``event`` **Member Fields**: In addition to the :ref:`common` ``context`` member fields, this event type also includes the following ``event`` member fields. .. list-table:: :widths: 15 15 60 :header-rows: 1 * - Field - Type - Details * - ``block_id`` - string - The identifier for the subsection, in the form of a serialized usage key. * - ``first_attempted`` - datetime - The timestamp of the learner's first attempt at a problem in the subsection. * - ``subtree_edited_on`` - datetime - The timestamp of the latest edit to the section of the course that contains the graded subsection. * - ``visible_blocks_hash`` - string - A hash of the course content that was available to this learner at the time that the grade was calculated. This field might be useful for identifying whether the course content was the same for two grades. * - ``weighted_graded_earned`` - number - The total weighted points earned on all graded problems in the subsection. * - ``weighted_graded_possible`` - number - The total weighted possible scores for all graded problems in the subsection. * - ``weighted_total_earned`` - number - The total weighted score earned on all problems in the subsection. * - ``weighted_total_possible`` - number - The total weighted scores possible on all problems in the subsection. The ``edx.grades.subsection.grade_calculated`` event also includes the following ``event`` member fields. These fields serve the same purpose for this event as they do for the :ref:`edx_grades_course_grade_calculated` event. * ``course_version`` * ``event_transaction_id`` * ``event_transaction_type`` .. _instructor_enrollment: ***************************** Instructor Enrollment Events ***************************** In addition to the enrollment events that are generated when students enroll in or unenroll from a course, actions by course team members also generate enrollment events. * When a course author creates a course, his or her user account is enrolled in the course and the server emits an ``edx.course.enrollment.activated`` event. * When a user with the Admin or Staff role enrolls in a course, the server emits ``edx.course.enrollment.activated``. The server emits ``edx.course.enrollment.deactivated`` events when these users unenroll from a course. * When a user with the Admin or Staff role uses the **Batch Enrollment** feature to enroll students or other course team members in a course, the server emits an ``edx.course.enrollment.activated`` event for each enrollment. When this feature is used to unenroll students from a course, the server emits a ``edx.course.enrollment.deactivated`` for each unenrollment. For events emitted as a result of a batch enrollment, the ``username`` and ``context.user_id`` identify the course team member who made the change, and the ``event.user_id`` identifies the student who was enrolled or unenrolled. The ``student_courseaccessrole`` table lists all users who have a privileged role or roles in the course. For details about student enrollment events, see :ref:`enrollment`. .. _special_exam_development_events: ************************************************************** Timed and Proctored Exam Development and Administration Events ************************************************************** Special exams are a type of course exam that includes timed exams, proctored exams, and practice proctored exams. These exam types offer more complicated functionality than other assignment types in graded subsections, and they emit additional events. Special exam events provide information about special exams included in courses and learners' interactions with those special exams. * Proctored exams have a time limit and they require learners to install and run monitoring software while taking the exam. After a learner completes a proctored exam, a team of reviewers determines whether the learner complied with all of the exam rules based on records generated by the monitoring software. * Practice proctored exams allow learners to become familiar with the monitoring software that they will use during an actual proctored exam. The way that a learner experiences a practice proctored exam is identical to a proctored exam. In a practice proctored exam, the monitoring software does not send exam records to reviewers. * Timed exams have a time limit. Learners do not install or use monitoring software when they take a timed exam. Practice proctored exams follow a workflow that is similar to proctored exams but do not include a review of the exam attempt. Timed exams also follow a similar workflow but do not include any proctoring software or review of the exam attempt. The following diagram shows the workflow for a proctored exam. .. image:: /_images/developers_references/proctored-exam-process.png :width: 500 :alt: A diagram showing the workflow for a proctored exam. Some special exam events are emitted when learners interact with exams. For more information, see :ref:`special_exam_events`. Because special exams include similar functions and behavior, they share some similar events. For example, the ``edx.special_exam.proctored.allowance.created``, ``edx.special_exam.practice.allowance.created``, and ``edx.special_exam.timed.allowance.created`` events include identical fields. This section includes descriptions of the following events. .. contents:: :local: :depth: 1 .. _special_exam_allowance_created: =================================================================================================================================================== ``edx.special_exam.proctored.allowance.created``, ``edx.special_exam.practice.allowance.created``, and ``edx.special_exam.timed.allowance.created`` =================================================================================================================================================== The server emits this event when a course team grants an exception to the standard exam rules for an individual learner. **History**: Added 01 Dec 2015. ``event`` **Member Fields**: .. list-table:: :widths: 15 15 60 :header-rows: 1 * - Field - Type - Details * - ``allowance_key`` - string - The type of allowance granted. * - ``allowance_user_id`` - number - The identifier of the learner who has been granted the allowance. * - ``allowance_value`` - string - The specific details of the allowance granted. * - ``exam_content_id`` - string - The primary identifier of the subsection that contains the exam. * - ``exam_default_time_limit_mins`` - number - The standard amount of time, in minutes, that learners have to complete the exam. * - ``exam_id`` - number - The primary identifier of the exam. * - ``exam_is_active`` - Boolean - Indicates whether the special exam is currently available for learner attempts. * - ``exam_is_practice_exam`` - Boolean - Indicates whether the special exam is a practice proctored exam. * - ``exam_is_proctored`` - Boolean - Indicates whether the special exam is a proctored exam. * - ``exam_name`` - string - The title of the exam in the course page, taken from the subsection title. .. _special_exam_allowance_deleted: =================================================================================================================================================== ``edx.special_exam.proctored.allowance.deleted``, ``edx.special_exam.practice.allowance.deleted``, and ``edx.special_exam.timed.allowance.deleted`` =================================================================================================================================================== The server emits this event when a course team removes an exception to the standard exam rules that was previously granted to an individual learner. The ``event`` fields for this event are the same as the ``event`` fields for the ``edx.special_exam.{special exam type}.allowance.created`` event. For more information, see :ref:`special_exam_allowance_created`. **History**: Added 01 Dec 2015. .. _special_exam_created: =================================================================================================================================================== ``edx.special_exam.proctored.created``, ``edx.special_exam.practice.created``, and ``edx.special_exam.timed.created`` =================================================================================================================================================== The server emits this event when a course team creates a proctored exam in Studio. **History**: Added 01 Dec 2015. ``event`` **Member Fields**: .. list-table:: :widths: 15 15 60 :header-rows: 1 * - Field - Type - Details * - ``exam_content_id`` - string - The primary identifier of the subsection that contains the exam. * - ``exam_default_time_limit_mins`` - number - The standard amount of time, in minutes, that learners have to complete the exam. * - ``exam_id`` - number - The primary identifier of the exam. * - ``exam_is_active`` - Boolean - Indicates whether the special exam is currently available for learner attempts. * - ``exam_is_practice_exam`` - Boolean - Indicates whether the special exam is a practice proctored exam. * - ``exam_is_proctored`` - Boolean - Indicates whether the special exam is a proctored exam. * - ``exam_name`` - string - The title of the exam in the course page, taken from the subsection title. .. _special_exam_updated: =================================================================================================================================================== ``edx.special_exam.proctored.updated``, ``edx.special_exam.practice.updated``, and ``edx.special_exam.timed.updated`` =================================================================================================================================================== The server emits this event when a course team alters a proctored exam in Studio. The ``event`` fields for this event are the same as the ``event`` fields for the ``edx.special_exam.{special exam type}.created`` event. For more information, see :ref:`special_exam_created`. **History**: Added 01 Dec 2015.