diff --git a/lang/en_utf8/hotpot.php b/lang/en_utf8/hotpot.php
index 6611c426ff6eb..e44fbc4d90893 100644
--- a/lang/en_utf8/hotpot.php
+++ b/lang/en_utf8/hotpot.php
@@ -22,6 +22,7 @@
$string['correct'] = 'Correct';
$string['deleteabandoned'] = 'Delete abandoned';
$string['deleteabandonedcheck'] = 'Do you really want to delete all $a abandoned attempts?';
+$string['deleteallattempts'] = 'Delete all attempts';
$string['displaycoursenext'] = 'Display Course page next';
$string['displayhotpotnext'] = 'Display Hot Potatoes quiz next';
$string['displayindexnext'] = 'Display HotPot index next';
diff --git a/mod/hotpot/lib.php b/mod/hotpot/lib.php
index 9ac88fc6adc49..11dce951f6683 100644
--- a/mod/hotpot/lib.php
+++ b/mod/hotpot/lib.php
@@ -2464,4 +2464,65 @@ function getDir(s) {
print ''.$html.'';
}
+/**
+ * This function is used by the reset_course_userdata function in moodlelib.
+ * This function will remove all attempts from hotpot quizzes in the specified course.
+ * @param $data the data submitted from the reset course.
+ * @return array status array
+ */
+function hotpot_reset_userdata($data) {
+ global $CFG;
+ require_once($CFG->libdir.'/filelib.php');
+
+ $status = array();
+
+ if (!empty($data->reset_hotpot_deleteallattempts)) {
+
+ $hotpotids = "SELECT h.id FROM {$CFG->prefix}hotpot h WHERE h.course={$data->courseid}";
+ $attemptids = "SELECT a.id FROM {$CFG->prefix}hotpot_attempts a WHERE a.hotpot in ($hotpotids)";
+
+ delete_records_select('hotpot_responses', "attempt in ($attemptids)");
+ delete_records_select('hotpot_details', "attempt in ($attemptids)");
+ delete_records_select('hotpot_attempts', "hotpot IN ($hotpotids)");
+
+ $status[] = array('component' => get_string('modulenameplural', 'hotpot'),
+ 'item' => get_string('deleteallattempts', 'hotpot'),
+ 'error' => false);
+ }
+
+ return $status;
+}
+
+/**
+ * Called by course/reset.php
+ * @param $mform form passed by reference
+ */
+function hotpot_reset_course_form($course) {
+ print_checkbox('reset_hotpot_deleteallattempts', 1, true, get_string('deleteallattempts', 'hotpot'), '', ''); echo '
';
+}
+function hotpot_delete_userdata($data, $showfeedback=true) {
+ global $CFG;
+
+ if (!empty($data->reset_hotpot_deleteallattempts)) {
+
+ $hotpotids = "SELECT h.id FROM {$CFG->prefix}hotpot h WHERE h.course={$data->courseid}";
+ $attemptids = "SELECT a.id FROM {$CFG->prefix}hotpot_attempts a WHERE a.hotpot in ($hotpotids)";
+
+ delete_records_select('hotpot_responses', "attempt in ($attemptids)");
+ delete_records_select('hotpot_details', "attempt in ($attemptids)");
+ delete_records_select('hotpot_attempts', "hotpot IN ($hotpotids)");
+
+ if ($showfeedback) {
+ notify(get_string('reset').': '.get_string('modulenameplural', 'hotpot'), 'notifysuccess');
+ }
+ }
+}
+
+/**
+ * Course reset form defaults.
+ */
+function hotpot_reset_course_form_defaults($course) {
+ return array('reset_hotpot_deleteallattempts' => 1);
+}
+
?>