@@ -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 ) {
0 commit comments