From 2b15768fb860fe0f99c6e979f069d49d5e8885d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Noack?= <noack@data-quest.de>
Date: Sun, 20 Aug 2023 18:26:02 +0000
Subject: [PATCH] Resolve #3071 "Verwaltung von Veranstaltungen: Gesperrte
 Veranstaltungen werden nicht als gesperrt angezeigt"

Closes #3071

Merge request studip/studip!2059
---
 app/controllers/admin/courses.php | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php
index c39bcebf223..af3b5c721be 100644
--- a/app/controllers/admin/courses.php
+++ b/app/controllers/admin/courses.php
@@ -556,7 +556,8 @@ class Admin_CoursesController extends AuthenticatedController
             $d['type'] = $semtype['name'];
         }
         if (in_array('room_time', $activated_fields)) {
-            $d['room_time'] = Seminar::GetInstance($course->id)->getDatesHTML([
+            $seminar = new Seminar($course);
+            $d['room_time'] = $seminar->getDatesHTML([
                 'show_room'   => true,
             ]) ?: _('nicht angegeben');
         }
@@ -700,11 +701,13 @@ class Admin_CoursesController extends AuthenticatedController
             case 17: //Gesperrte Veranstaltungen
                 $cs = CourseSet::getSetForCourse($course->id);
                 if ($cs) {
-                    $locked = $cs->getId() === CourseSet::getGlobalLockedAdmissionSetId();
+                    $locked = true;
+                    $disabled = !$cs->hasAdmissionRule('LockedAdmission');
                 } else {
                     $locked = false;
+                    $disabled = false;
                 }
-                $d['action'] = '<input type="hidden" name="all_sem[]" value="'.htmlReady($course->id).'"><input type="checkbox" name="admission_locked['.$course->getId().']" '.($locked ? 'checked' : '').' value="1" aria-label="'.htmlReady(sprintf(_('Veranstaltung %s sperren'), $course->getFullName())).'">';
+                $d['action'] = '<input type="hidden" name="all_sem[]" value="'.htmlReady($course->id).'"><input type="checkbox" name="admission_locked['.$course->getId().']" '.($locked ? 'checked' : '').' '.($disabled ? 'disabled' : '').' value="1" aria-label="'.htmlReady(sprintf(_('Veranstaltung %s sperren'), $course->getFullName())).'">';
                 break;
             case 18: //Startsemester
                 $d['action'] = (string) \Studip\LinkButton::create(
-- 
GitLab