Skip to content

Commit

Permalink
delete all includes incomplete responses (#562)
Browse files Browse the repository at this point in the history
  • Loading branch information
Syxton authored Aug 21, 2024
1 parent 1f43c39 commit afe3b05
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
15 changes: 10 additions & 5 deletions questionnaire.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -826,9 +826,10 @@ public function count_submissions($userid=false, $groupid=0) {
*
* @param int|bool $userid
* @param int $groupid
* @param int|bool $includeincomplete
* @return array
*/
public function get_responses($userid=false, $groupid=0) {
public function get_responses($userid=false, $groupid=0, $includeincomplete=false) {
global $DB;

$params = [];
Expand All @@ -840,6 +841,12 @@ public function get_responses($userid=false, $groupid=0) {
$params['groupid'] = $groupid;
}

$statuscnd = '';
if (!$includeincomplete) {
$statuscnd = ' AND r.complete = :status ';
$params['status'] = 'y';
}

// Since submission can be across questionnaires in the case of public questionnaires, need to check the realm.
// Public questionnaires can have responses to multiple questionnaire instances.
if ($this->survey_is_public_master()) {
Expand All @@ -848,16 +855,14 @@ public function get_responses($userid=false, $groupid=0) {
'INNER JOIN {questionnaire} q ON r.questionnaireid = q.id ' .
'INNER JOIN {questionnaire_survey} s ON q.sid = s.id ' .
$groupsql .
'WHERE s.id = :surveyid AND r.complete = :status' . $groupcnd;
'WHERE s.id = :surveyid' . $statuscnd . $groupcnd;
$params['surveyid'] = $this->sid;
$params['status'] = 'y';
} else {
$sql = 'SELECT r.* ' .
'FROM {questionnaire_response} r ' .
$groupsql .
'WHERE r.questionnaireid = :questionnaireid AND r.complete = :status' . $groupcnd;
'WHERE r.questionnaireid = :questionnaireid' . $statuscnd . $groupcnd;
$params['questionnaireid'] = $this->id;
$params['status'] = 'y';
}
if ($userid) {
$sql .= ' AND r.userid = :userid';
Expand Down
6 changes: 6 additions & 0 deletions report.php
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,9 @@
case 'delallresp': // Delete all responses? Ask for confirmation.
require_capability('mod/questionnaire:deleteresponses', $context);

// Get all responses including incompletes.
$respsallparticipants = $questionnaire->get_responses(false, 0, true);

if (!empty($respsallparticipants)) {

// Print the page header.
Expand Down Expand Up @@ -357,6 +360,9 @@
throw new \moodle_exception('surveyowner', 'mod_questionnaire');
}

// Get all responses including incompletes.
$respsallparticipants = $questionnaire->get_responses(false, 0, true);

// Available group modes (0 = no groups; 1 = separate groups; 2 = visible groups).
if ($groupmode > 0) {
switch ($currentgroupid) {
Expand Down

0 comments on commit afe3b05

Please sign in to comment.