diff options
| author | Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> | 2025-06-19 10:36:38 +0200 |
|---|---|---|
| committer | Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> | 2025-06-19 10:36:38 +0200 |
| commit | fafe09daf59e8a2138af7c895da62b23735ee8ab (patch) | |
| tree | 8aea1de7e53e797251bf69584c2903bd365d0974 | |
| parent | c579bfcf3591eb538eb11d90b06383c0be09c00f (diff) | |
don't store and count multiple answers for the same user, fixes #3802
Closes #3802
Merge request studip/studip!4265
| -rw-r--r-- | lib/models/Questionnaire.php | 7 | ||||
| -rw-r--r-- | lib/models/QuestionnaireInfo.php | 2 |
2 files changed, 3 insertions, 6 deletions
diff --git a/lib/models/Questionnaire.php b/lib/models/Questionnaire.php index f8cc703..3135dbd 100644 --- a/lib/models/Questionnaire.php +++ b/lib/models/Questionnaire.php @@ -50,13 +50,10 @@ class Questionnaire extends SimpleORMap implements PrivacyObject public function countAnswers() { $statement = DBManager::get()->prepare(" - SELECT COUNT(*) as `count_answers` + SELECT COUNT(DISTINCT user_id) FROM questionnaire_answers - INNER JOIN questionnaire_questions ON (questionnaire_answers.question_id = questionnaire_questions.question_id) + JOIN questionnaire_questions USING (question_id) WHERE questionnaire_id = :questionnaire_id - GROUP BY questionnaire_answers.question_id - ORDER BY `count_answers` DESC - LIMIT 1 "); $statement->execute([ 'questionnaire_id' => $this->getId() diff --git a/lib/models/QuestionnaireInfo.php b/lib/models/QuestionnaireInfo.php index 185ac68..f0b277a 100644 --- a/lib/models/QuestionnaireInfo.php +++ b/lib/models/QuestionnaireInfo.php @@ -58,7 +58,7 @@ class QuestionnaireInfo extends QuestionnaireQuestion implements QuestionType public function createAnswer() { - return new QuestionnaireAnswer(); // Unused but necessary + return $this->getMyAnswer(); } public function getUserIdsOfFilteredAnswer($answer_option) |
