aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorAndré Noack <noack@data-quest.de>2024-05-03 15:49:37 +0000
committerAndré Noack <noack@data-quest.de>2024-05-03 15:49:37 +0000
commit9c060cedfa6017a38b79d3bc6771fea2084bf823 (patch)
treea110fb44bc5b8c2009302517b5d75cedf2aa15b3 /app
parenta54b6f395dbef03e679357e9e93891d4b4749ba1 (diff)
Resolve "Verwaltung von Veranstaltungen: Duplikate im Lehrendenfilter"
Closes #4054 and #4107 Merge request studip/studip!2955
Diffstat (limited to 'app')
-rw-r--r--app/controllers/admin/courses.php35
1 files changed, 20 insertions, 15 deletions
diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php
index 17a07c7..8de1b79 100644
--- a/app/controllers/admin/courses.php
+++ b/app/controllers/admin/courses.php
@@ -534,12 +534,14 @@ class Admin_CoursesController extends AuthenticatedController
'institut_id' => 'MY_INSTITUTES_DEFAULT',
];
- $config->store(
- 'MY_INSTITUTES_INCLUDE_CHILDREN',
- str_contains($filters['institut_id'], '_') ? 1 : 0
- );
- if ($config->MY_INSTITUTES_INCLUDE_CHILDREN) {
- $filters['institut_id'] = substr($filters['institut_id'], 0, strpos($filters['institut_id'], '_'));
+ if (!empty($filters['institut_id'])) {
+ $config->store(
+ 'MY_INSTITUTES_INCLUDE_CHILDREN',
+ str_contains($filters['institut_id'], '_') ? 1 : 0
+ );
+ if ($config->MY_INSTITUTES_INCLUDE_CHILDREN) {
+ $filters['institut_id'] = substr($filters['institut_id'], 0, strpos($filters['institut_id'], '_'));
+ }
}
foreach ($mapping as $key => $field) {
@@ -1674,7 +1676,9 @@ class Admin_CoursesController extends AuthenticatedController
if (str_contains($institut_id, '_')) {
$institut_id = substr($institut_id, 0, strpos($institut_id, '_'));
}
- $teachers = DBManager::get()->fetchAll("
+ $teachers = [];
+ if ($institut_id) {
+ $teachers = DBManager::get()->fetchAll("
SELECT auth_user_md5.*, user_info.*
FROM auth_user_md5
LEFT JOIN user_info ON (auth_user_md5.user_id = user_info.user_id)
@@ -1682,18 +1686,19 @@ class Admin_CoursesController extends AuthenticatedController
INNER JOIN Institute ON (Institute.Institut_id = user_inst.Institut_id)
WHERE (Institute.Institut_id = :institut_id OR Institute.fakultaets_id = :institut_id)
AND auth_user_md5.perms = 'dozent'
+ GROUP BY auth_user_md5.user_id
ORDER BY auth_user_md5.Nachname ASC, auth_user_md5.Vorname ASC
", [
'institut_id' => $institut_id
],
- function ($data) {
- $ret['user_id'] = $data['user_id'];
- unset($data['user_id']);
- $ret['fullname'] = User::build($data)->getFullName("full_rev");
- return $ret;
- }
- );
-
+ function ($data) {
+ $ret['user_id'] = $data['user_id'];
+ unset($data['user_id']);
+ $ret['fullname'] = User::build($data)->getFullName("full_rev");
+ return $ret;
+ }
+ );
+ }
$list = [];
if (!$institut_id || $institut_id === 'all') {