diff options
| author | Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> | 2025-06-19 10:36:38 +0200 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2025-06-20 15:44:21 +0200 |
| commit | 01566b2cf9ffdc7c79911f24b94b509468568534 (patch) | |
| tree | 283f4e6eae26385bcd96ff0adad80bbd68e598a1 /lib | |
| parent | 8f302c13e33fbb9f2a9ad21df588166a31b86f30 (diff) | |
don't store and count multiple answers for the same user, fixes #3802
Closes #3802
Merge request studip/studip!4265
Diffstat (limited to 'lib')
| -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 f29a2de..e6f81c6 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 fc6efc7..382cb75 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) |
