@@ -851,9 +851,10 @@ public function count_submissions($userid=false, $groupid=0) {
851851 *
852852 * @param int|bool $userid
853853 * @param int $groupid
854+ * @param int|bool $includeincomplete
854855 * @return array
855856 */
856- public function get_responses ($ userid =false , $ groupid =0 ) {
857+ public function get_responses ($ userid =false , $ groupid =0 , $ includeincomplete = false ) {
857858 global $ DB ;
858859
859860 $ params = [];
@@ -865,6 +866,12 @@ public function get_responses($userid=false, $groupid=0) {
865866 $ params ['groupid ' ] = $ groupid ;
866867 }
867868
869+ $ statuscnd = '' ;
870+ if (!$ includeincomplete ) {
871+ $ statuscnd = ' AND r.complete = :status ' ;
872+ $ params ['status ' ] = 'y ' ;
873+ }
874+
868875 // Since submission can be across questionnaires in the case of public questionnaires, need to check the realm.
869876 // Public questionnaires can have responses to multiple questionnaire instances.
870877 if ($ this ->survey_is_public_master ()) {
@@ -873,16 +880,14 @@ public function get_responses($userid=false, $groupid=0) {
873880 'INNER JOIN {questionnaire} q ON r.questionnaireid = q.id ' .
874881 'INNER JOIN {questionnaire_survey} s ON q.sid = s.id ' .
875882 $ groupsql .
876- 'WHERE s.id = :surveyid AND r.complete = :status ' . $ groupcnd ;
883+ 'WHERE s.id = :surveyid ' . $ statuscnd . $ groupcnd ;
877884 $ params ['surveyid ' ] = $ this ->sid ;
878- $ params ['status ' ] = 'y ' ;
879885 } else {
880886 $ sql = 'SELECT r.* ' .
881887 'FROM {questionnaire_response} r ' .
882888 $ groupsql .
883- 'WHERE r.questionnaireid = :questionnaireid AND r.complete = :status ' . $ groupcnd ;
889+ 'WHERE r.questionnaireid = :questionnaireid ' . $ statuscnd . $ groupcnd ;
884890 $ params ['questionnaireid ' ] = $ this ->id ;
885- $ params ['status ' ] = 'y ' ;
886891 }
887892 if ($ userid ) {
888893 $ sql .= ' AND r.userid = :userid ' ;
0 commit comments