diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2024-04-04 08:16:00 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+github@gmail.com> | 2024-04-04 16:11:55 +0200 |
| commit | 5e4f0038b21990247e8667c3819f5326bdad88a9 (patch) | |
| tree | 508075a93a0e9f88bd1f22aa89d8edce0228ea49 | |
| parent | 92d5c25ba63696e73453c5840fd69faf861795ea (diff) | |
disallow turning a regular course into a study group, fixes #3921
Closes #3921
Merge request studip/studip!2797
| -rw-r--r-- | app/controllers/course/basicdata.php | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/app/controllers/course/basicdata.php b/app/controllers/course/basicdata.php index 4db4dee..bfa2e5d 100644 --- a/app/controllers/course/basicdata.php +++ b/app/controllers/course/basicdata.php @@ -878,20 +878,30 @@ class Course_BasicdataController extends AuthenticatedController private function _getTypes($sem, $data, &$changable = true) { $sem_types = []; + + $sem_classes = []; if ($GLOBALS['perm']->have_perm("admin")) { foreach (SemClass::getClasses() as $sc) { if (!$sc['course_creation_forbidden']) { - $sem_types[$sc['name']] = array_map(function ($st) { - return $st['name']; - }, $sc->getSemTypes()); + $sem_classes[] = $sc; } } } else { - $sc = $sem->getSemClass(); + $sem_classes[] = $sem->getSemClass(); + } + + if (!$sem->isStudyGroup()) { + $sem_classes = array_filter($sem_classes, function (SemClass $sc) { + return !$sc['studygroup_mode']; + }); + } + + foreach ($sem_classes as $sc) { $sem_types[$sc['name']] = array_map(function ($st) { return $st['name']; }, $sc->getSemTypes()); } + if (!in_array($data['status'], array_flatten(array_values(array_map('array_keys', $sem_types))))) { $class_name = $sem->getSemClass()->offsetGet('name'); if (!isset($sem_types[$class_name])) { |
