diff options
| author | Finn Schneider <schneider@data-quest.de> | 2026-03-12 16:16:25 +0100 |
|---|---|---|
| committer | Finn Schneider <schneider@data-quest.de> | 2026-03-13 17:25:01 +0000 |
| commit | ff2ecd2d090402a5a30eb675c1d3165d44fbf912 (patch) | |
| tree | 3978ec0f94b01acda25b737eebaa4fa91b36cd29 | |
| parent | 0b5a0d2805bb0af6adb1fb454642fc80e291d52e (diff) | |
answer & evaluate in course
| -rw-r--r-- | app/views/course/evaluation/index.php | 18 | ||||
| -rw-r--r-- | lib/models/Questionnaire.php | 18 | ||||
| -rw-r--r-- | lib/models/QuestionnaireEvalAssignment.php | 2 |
3 files changed, 35 insertions, 3 deletions
diff --git a/app/views/course/evaluation/index.php b/app/views/course/evaluation/index.php index a7268d0..193ecf7 100644 --- a/app/views/course/evaluation/index.php +++ b/app/views/course/evaluation/index.php @@ -4,8 +4,24 @@ */ ?> -<?php foreach ($controller->evaluations as $evaluation) : ?> +<?php foreach ($controller->evaluations as $key => $evaluation) : ?> + <article class="studip toggle <?= $key == 0 ? 'open' : '' ?>"> + <header> + <h1> + <a href="#"> + <?= htmlReady((Semester::find($evaluation->eval_assignment->semester_id))->name . ' - ' . $evaluation->title) ?> + </a> + </h1> + </header> + <?php if ($evaluation->isStopped()) : ?> + <?= $this->render_partial('questionnaire/evaluate.php', ['questionnaire' => $evaluation, 'range_type' => 'course', 'range_id' => Context::getId()]) ?> + <?php elseif ($evaluation->isAnswerable()) : ?> + <?= $this->render_partial('questionnaire/answer.php', ['questionnaire' => $evaluation, 'range_type' => 'course', 'range_id' => Context::getId()]) ?> + <?php else : ?> + <p><?= _('Die Evaluation ist noch nicht abgeschlossen.') ?></p> + <?php endif ?> + </article> <?php endforeach ?> <?php diff --git a/lib/models/Questionnaire.php b/lib/models/Questionnaire.php index 083ddeb..62f7b82 100644 --- a/lib/models/Questionnaire.php +++ b/lib/models/Questionnaire.php @@ -141,6 +141,12 @@ class Questionnaire extends SimpleORMap implements PrivacyObject } } } + + if ($this->eval_assignment) { + return User::findCurrent() + ->hasPermissionLevel('autor', Course::find($this->eval_assignment->course_id)); + } + return false; } @@ -234,12 +240,20 @@ class Questionnaire extends SimpleORMap implements PrivacyObject public function isStarted() { - return $this['startdate'] && ($this['startdate'] <= time()); + if ($this->eval_assignment) { + return $this->eval_assignment->startdate && $this->eval_assignment->startdate <= time(); + } else { + return $this['startdate'] && ($this['startdate'] <= time()); + } } public function isStopped() { - return $this['stopdate'] && ($this['stopdate'] <= time()); + if ($this->eval_assignment) { + return $this->eval_assignment->stopdate && $this->eval_assignment->stopdate <= time(); + } else { + return $this['stopdate'] && ($this['stopdate'] <= time()); + } } public function isRunning() diff --git a/lib/models/QuestionnaireEvalAssignment.php b/lib/models/QuestionnaireEvalAssignment.php index 830df50..7731c81 100644 --- a/lib/models/QuestionnaireEvalAssignment.php +++ b/lib/models/QuestionnaireEvalAssignment.php @@ -1,6 +1,8 @@ <?php /** + * @property string semester_id database column + * @property string course_id database column * @property JSONArrayObject course_metadata database column * @property null|int $startdate database column * @property null|int $stopdate database column |
