aboutsummaryrefslogtreecommitdiff
path: root/lib/models/Questionnaire.php
diff options
context:
space:
mode:
authorFinn Schneider <schneider@data-quest.de>2026-03-19 16:01:40 +0100
committerFinn Schneider <schneider@data-quest.de>2026-03-19 16:01:40 +0100
commit063dafb012c6bdeedd5257bf8117b5949c915763 (patch)
tree820fe6fe3139a32271e5a75e9d1289e21eded9eb /lib/models/Questionnaire.php
parentbe2a37e22c64711d0c27b522b17176665a01a688 (diff)
simplify resultsVisible
Diffstat (limited to 'lib/models/Questionnaire.php')
-rw-r--r--lib/models/Questionnaire.php20
1 files changed, 2 insertions, 18 deletions
diff --git a/lib/models/Questionnaire.php b/lib/models/Questionnaire.php
index d6260f0..52fc7f2 100644
--- a/lib/models/Questionnaire.php
+++ b/lib/models/Questionnaire.php
@@ -269,25 +269,9 @@ class Questionnaire extends SimpleORMap implements PrivacyObject
if (!$this->result_visible_for) {
return false;
}
- $eval_visible = $user->hasPermissionLevel($this->result_visible_for, Context::get());
+ $eval_visible = $user->hasPermissionLevel($this->result_visible_for, Context::get())
+ && $this->countAnswers() >= $this->minimum_responses;
- if ($this->anonymous) {
- $statement = DBManager::get()->prepare(
- "SELECT DISTINCT count(`user_id`) AS 'amount' FROM `questionnaire_anonymous_answers`
- WHERE `questionnaire_id` = :questionnaire_id");
- } else {
- $statement = DBManager::get()->prepare(
- "SELECT DISTINCT count(`user_id`) AS 'amount' FROM `questionnaire_answers`
- INNER JOIN `questionnaire_questions`
- ON `questionnaire_questions`.`question_id` = `questionnaire_answers`.`question_id`
- WHERE `questionnaire_id` = :questionnaire_id");
- }
- $statement->execute([
- 'questionnaire_id' => $this->getId()
- ]);
- $response_amount = $statement->fetch()['amount'];
-
- $eval_visible = $eval_visible && ($response_amount >= $this->minimum_responses);
return $eval_visible
&& ($this->resultvisibility === 'afterending' && $this->isStopped()
|| $this->resultvisibility === 'afterparticipation' && $this->isAnswered());