Quiz submission email notification

From MoodleDocs
Revision as of 13:56, 17 February 2024 by Mary Cooch (talk | contribs) (→‎Quiz submission notifications)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Quiz submission notifications

It is possible for a message to be sent out to confirm that the student submitted the quiz.

There are two types of notification:

  1. A confirmation to the student that their attempt has finished successfully
  2. A notification to the teacher(s) that someone has submitted an attempt. Messages are never sent for preview attempts.

Note that although the capabilities are "emailnotifysubmission/emailconfirmsubmission" the notifications do NOT have to be via email. The notifications come via Moodle's messaging system. Admins can set the defaults from Administration > Site administration > Plugins > Message outputs > Default message outputs to enable/disabe the desired notification type(s)

quiz submission notification.png


See Messaging settings for more details. (Notification messages in Moodle quiz are disabled by default.)

Allow Quiz notification messages to teachers

To do this for an individual quiz, click into the quiz, click More and then and Permissions (Boost theme) or for other themes, click Permissions from the Quiz administration block.

This may also be done on the site level by the administrator in Administration > Site administration > Users > Permissions > Define roles > Teacher

  1. In the filter, type "email" to locate the capability "mod/quiz:emailnotifysubmission"
  2. Click on the + for "Roles with permission"
  3. On the next screen, select Teacher and click "Allow"


QuizEmailNotifySub.png

Messages in a specific quiz to specific teacher(s)

The system administrator will need to create a new role, and allow the capability mod/quiz:emailnotifysubmission for that role. Do not give the capability to the teacher role on the system or course level. The new role is similar to a teacher role and should be available on the activity level.

In the course, go to Quiz settings > More > Locally assigned roles, assign the user(s) who should get emails/messages for a submitted quiz to the new role.

Allow confirmation messages to students

To do this for an individual quiz, go to: Quiz settings > More > Permissions


This may also be done on the site level by the administrator in Administration > Site administration > Users > Permissions > Define roles > Student

  1. In the Capability column under Activity: Quiz find the capability mod/quiz:emailconfirmsubmission
  2. Click on the +
  3. On the next screen, select Student and click "Allow"


Notes

Note that if the quiz is set to separate groups, then teachers will only get a notification if either
  • the student is in the same group as the teacher, or
  • the teacher has moodle/site:accessallgroups.

How to configure the text of the messages

Administration > Site administration > Language > Language customization

This can only be done by a user that has permission to alter the language files. To reconfigure the way the email reads, you will need to understand string variables and how they work as part of another string. While not complicated, this will require attention to detail. This section assumes you also have read Language customization.

The subject and body of the emails are defined in the quiz.php language file that are in the "mod" group. The strings to edit are 'emailconfirmsubject', 'emailconfirmbody', 'emailnotifysubject' and 'emailnotifybody'. The $a string passed in when these language strings are loaded contains all the following information:

The emailconfirmbody string

Dear {$a->username}, Thank you for submitting your answers to '{$a->quizname}' in course '{$a->coursename}' at {$a->submissiontime}. This message confirms that we have safely received your answers. You can access this quiz at {$a->quizurl}.

The emailnotifybody string

Dear {$a->username}, {$a->studentname} has completed the quiz '{$a->quizname}' ({$a->quizurl}) in course '{$a->coursename}' You can review this attempt at {$a->quizreviewurl}.

The emailnotifysmall

{$a->studentname} has completed {$a->quizname}

The emailnotifysubject string

Quiz submission confirmation: {$a->quizname}

Potential strings to use in an email

$a->coursename
The name of the course
$a->courseshortname
The shortname of the course
$a->quizname
The name of the quiz
$a->quizreporturl
The URL of the results overview for this quiz (.../mod/quiz/report.php?q=quizid)
$a->quizreportlink
The URL of the results overview URL and quiz name as a HTML link
$a->quizreviewurl
The URL of the review page for this attempt (.../mod/quiz/review.php?attempt=attemptid)
$a->quizreviewlink
The attempt review URL and quiz name as a HTML link
$a->quizurl
The URL of the main page of the quiz (.../mod/quiz/view.php?q=quizid)
$a->quizlink
The URL of the quiz and the quiz name as a HTML link
$a->attemptsubmissiontime
The time the attempt was submitted, formatted using userdate().
$a->timetaken
How long the quiz attempt lasted.
$a->studentname
The name of the person who submitted the quiz.
$a->studentidnumber
The idnumber of the person who submitted the quiz.
$a->studentusername
The username of the person who submitted the quiz.
$a->username
The name of the user the email is being sent to.
$a->useridnumber
The idnumber of the user the email is being sent to.
$a->userusername
The username of the user the email is being sent to.