Skip to content

Commit 8346f25

Browse files
Syxtontai.letan
authored andcommitted
delete all includes incomplete responses (#562)
1 parent 0cb5ef0 commit 8346f25

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

questionnaire.class.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -824,9 +824,10 @@ public function count_submissions($userid=false, $groupid=0) {
824824
*
825825
* @param int|bool $userid
826826
* @param int $groupid
827+
* @param int|bool $includeincomplete
827828
* @return array
828829
*/
829-
public function get_responses($userid=false, $groupid=0) {
830+
public function get_responses($userid=false, $groupid=0, $includeincomplete=false) {
830831
global $DB;
831832

832833
$params = [];
@@ -838,6 +839,12 @@ public function get_responses($userid=false, $groupid=0) {
838839
$params['groupid'] = $groupid;
839840
}
840841

842+
$statuscnd = '';
843+
if (!$includeincomplete) {
844+
$statuscnd = ' AND r.complete = :status ';
845+
$params['status'] = 'y';
846+
}
847+
841848
// Since submission can be across questionnaires in the case of public questionnaires, need to check the realm.
842849
// Public questionnaires can have responses to multiple questionnaire instances.
843850
if ($this->survey_is_public_master()) {
@@ -846,14 +853,13 @@ public function get_responses($userid=false, $groupid=0) {
846853
'INNER JOIN {questionnaire} q ON r.questionnaireid = q.id ' .
847854
'INNER JOIN {questionnaire_survey} s ON q.sid = s.id ' .
848855
$groupsql .
849-
'WHERE s.id = :surveyid AND r.complete = :status' . $groupcnd;
856+
'WHERE s.id = :surveyid' . $statuscnd . $groupcnd;
850857
$params['surveyid'] = $this->sid;
851-
$params['status'] = 'y';
852858
} else {
853859
$sql = 'SELECT r.* ' .
854860
'FROM {questionnaire_response} r ' .
855861
$groupsql .
856-
'WHERE r.questionnaireid = :questionnaireid' . $groupcnd;
862+
'WHERE r.questionnaireid = :questionnaireid' . $statuscnd . $groupcnd;
857863
$params['questionnaireid'] = $this->id;
858864
}
859865
if ($userid) {

report.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,9 @@
277277
case 'delallresp': // Delete all responses? Ask for confirmation.
278278
require_capability('mod/questionnaire:deleteresponses', $context);
279279

280+
// Get all responses including incompletes.
281+
$respsallparticipants = $questionnaire->get_responses(false, 0, true);
282+
280283
if (!empty($respsallparticipants)) {
281284

282285
// Print the page header.
@@ -367,6 +370,9 @@
367370
throw new \moodle_exception('surveyowner', 'mod_questionnaire');
368371
}
369372

373+
// Get all responses including incompletes.
374+
$respsallparticipants = $questionnaire->get_responses(false, 0, true);
375+
370376
// Available group modes (0 = no groups; 1 = separate groups; 2 = visible groups).
371377
if ($groupmode > 0) {
372378
switch ($currentgroupid) {

0 commit comments

Comments
 (0)