From 7ae0067047d49c67678050f690a926ef998952e4 Mon Sep 17 00:00:00 2001 From: Finn Schneider Date: Fri, 13 Mar 2026 15:49:49 +0100 Subject: prevent profile edit after eval start --- app/views/evaluation/pool/index.php | 20 +++++++++++++------- app/views/evaluation/profiles/index.php | 20 +++++++++++++++----- lib/models/Questionnaire.php | 5 ++--- lib/models/QuestionnaireEvalCentralProfile.php | 9 +++++++++ 4 files changed, 39 insertions(+), 15 deletions(-) diff --git a/app/views/evaluation/pool/index.php b/app/views/evaluation/pool/index.php index 6eb2e7d..3b96578 100644 --- a/app/views/evaluation/pool/index.php +++ b/app/views/evaluation/pool/index.php @@ -31,17 +31,22 @@ use Studip\Button; - - isEditable()) : ?> + isEditable()) : ?> + title) ?> - + + + title) ?> - - + + chdate) ?> @@ -51,8 +56,9 @@ use Studip\Button; isEditable()) : ?> asSvg( - ['title' => _('Mindestens eine Evaluation dieser Vorlage ist gestartet. - Sie kann nicht mehr bearbeitet werden.')] + ['title' => sprintf( + _('Mindestens eine Evaluation der Vorlage %s ist gestartet. Sie kann nicht mehr bearbeitet werden.'), + $template->title)] ) ?> - - semester_id) ?>" - data-dialog> + isEditable()) : ?> + + semester_id) ?>" + data-dialog> + semester->name) ?> + + + + semester->name) ?> - - + + template->title) ?> optional_templates)) as $opt_template) : ?> diff --git a/lib/models/Questionnaire.php b/lib/models/Questionnaire.php index 62f7b82..a3609c2 100644 --- a/lib/models/Questionnaire.php +++ b/lib/models/Questionnaire.php @@ -170,9 +170,8 @@ class Questionnaire extends SimpleORMap implements PrivacyObject { if($this->is_template) { if(EvaluationHelper::isPermittedEvaluationAccess()) { - return !count(QuestionnaireEvalAssignment::findBySQL(" - `startdate` <= UNIX_TIMESTAMP() AND `template_id` = ? - ", [$this->id])); + return !QuestionnaireEvalAssignment::countBySQL( + "`startdate` <= UNIX_TIMESTAMP() AND `template_id` = ?", [$this->id]); } return false; } diff --git a/lib/models/QuestionnaireEvalCentralProfile.php b/lib/models/QuestionnaireEvalCentralProfile.php index c44ad79..f3eef52 100644 --- a/lib/models/QuestionnaireEvalCentralProfile.php +++ b/lib/models/QuestionnaireEvalCentralProfile.php @@ -46,4 +46,13 @@ class QuestionnaireEvalCentralProfile extends SimpleORMap $is_for ? self::RESULT_VISIBLE_FOR_OPTIONS : self::RESULT_VISIBILITY_OPTIONS ); } + + public function isEditable() + { + if(EvaluationHelper::isPermittedEvaluationAccess()) { + return !QuestionnaireEvalAssignment::countBySQL( + "`startdate` <= UNIX_TIMESTAMP() AND `semester_id` = ?", [$this->semester_id]); + } + return false; + } } -- cgit v1.0