@@ -826,9 +826,10 @@ public function count_submissions($userid=false, $groupid=0) {
826
826
*
827
827
* @param int|bool $userid
828
828
* @param int $groupid
829
+ * @param int|bool $includeincomplete
829
830
* @return array
830
831
*/
831
- public function get_responses ($ userid =false , $ groupid =0 ) {
832
+ public function get_responses ($ userid =false , $ groupid =0 , $ includeincomplete = false ) {
832
833
global $ DB ;
833
834
834
835
$ params = [];
@@ -840,6 +841,12 @@ public function get_responses($userid=false, $groupid=0) {
840
841
$ params ['groupid ' ] = $ groupid ;
841
842
}
842
843
844
+ $ statuscnd = '' ;
845
+ if (!$ includeincomplete ) {
846
+ $ statuscnd = ' AND r.complete = :status ' ;
847
+ $ params ['status ' ] = 'y ' ;
848
+ }
849
+
843
850
// Since submission can be across questionnaires in the case of public questionnaires, need to check the realm.
844
851
// Public questionnaires can have responses to multiple questionnaire instances.
845
852
if ($ this ->survey_is_public_master ()) {
@@ -848,16 +855,14 @@ public function get_responses($userid=false, $groupid=0) {
848
855
'INNER JOIN {questionnaire} q ON r.questionnaireid = q.id ' .
849
856
'INNER JOIN {questionnaire_survey} s ON q.sid = s.id ' .
850
857
$ groupsql .
851
- 'WHERE s.id = :surveyid AND r.complete = :status ' . $ groupcnd ;
858
+ 'WHERE s.id = :surveyid ' . $ statuscnd . $ groupcnd ;
852
859
$ params ['surveyid ' ] = $ this ->sid ;
853
- $ params ['status ' ] = 'y ' ;
854
860
} else {
855
861
$ sql = 'SELECT r.* ' .
856
862
'FROM {questionnaire_response} r ' .
857
863
$ groupsql .
858
- 'WHERE r.questionnaireid = :questionnaireid AND r.complete = :status ' . $ groupcnd ;
864
+ 'WHERE r.questionnaireid = :questionnaireid ' . $ statuscnd . $ groupcnd ;
859
865
$ params ['questionnaireid ' ] = $ this ->id ;
860
- $ params ['status ' ] = 'y ' ;
861
866
}
862
867
if ($ userid ) {
863
868
$ sql .= ' AND r.userid = :userid ' ;
0 commit comments