From 9514cdb9b7bbe34a2b73c09774c36e8d3c68c882 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Thu, 19 Sep 2024 13:07:11 +0000 Subject: [PATCH] fix faulty access to semesters in global course search, fixes #4604 Closes #4604 Merge request studip/studip!3419 --- lib/classes/globalsearch/GlobalSearchCourses.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/classes/globalsearch/GlobalSearchCourses.php b/lib/classes/globalsearch/GlobalSearchCourses.php index cb1fbae79ad..6359e8a6cb2 100644 --- a/lib/classes/globalsearch/GlobalSearchCourses.php +++ b/lib/classes/globalsearch/GlobalSearchCourses.php @@ -84,10 +84,9 @@ class GlobalSearchCourses extends GlobalSearchModule implements GlobalSearchFull $semester = Semester::findByTimestamp($filter['semester']); $semester_ids = [$semester->id]; } - $semester_join = "LEFT JOIN semester_courses ON (courses.Seminar_id = semester_courses.course_id) "; $semester_condition = " AND ( - semester_courses.semester_id IS NULL OR semester_courses.semester_id IN (" . join(',', array_map([DBManager::get(), 'quote'], $semester_ids)) . ") + semester_courses.semester_id IS NULL OR semester_courses.semester_id IN (" . implode(',', array_map([DBManager::get(), 'quote'], $semester_ids)) . ") ) "; } if (!empty($filter['institute'])) { @@ -104,12 +103,11 @@ class GlobalSearchCourses extends GlobalSearchModule implements GlobalSearchFull {$language_name} AS `Name`, courses.`VeranstaltungsNummer`, courses.`status` FROM `seminare` AS courses - JOIN `semester_courses` ON courses.`seminar_id` = `semester_courses`.`course_id` - JOIN `semester` USING (`semester_id`) + LEFT JOIN `semester_courses` ON courses.`seminar_id` = `semester_courses`.`course_id` + LEFT JOIN `semester_data` USING (`semester_id`) {$language_join} JOIN `seminar_user` u ON (u.`Seminar_id` = courses.`Seminar_id` AND u.`status` = 'dozent') JOIN `auth_user_md5` a ON (a.`user_id` = u.`user_id`) - {$semester_join} WHERE {$visibility} ( {$language_name} LIKE {$query} @@ -120,7 +118,7 @@ class GlobalSearchCourses extends GlobalSearchModule implements GlobalSearchFull {$seminar_type_condition} {$semester_condition} GROUP BY courses.Seminar_id - ORDER BY `semester`.`beginn` DESC"; + ORDER BY MAX(`semester_data`.`beginn`) DESC"; if (Config::get()->IMPORTANT_SEMNUMBER) { $sql .= ", courses.`VeranstaltungsNummer`"; -- GitLab