Skip to content
Snippets Groups Projects
Commit 9514cdb9 authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms
Browse files

fix faulty access to semesters in global course search, fixes #4604

Closes #4604

Merge request studip/studip!3419
parent e94466a5
No related branches found
No related tags found
No related merge requests found
...@@ -84,10 +84,9 @@ class GlobalSearchCourses extends GlobalSearchModule implements GlobalSearchFull ...@@ -84,10 +84,9 @@ class GlobalSearchCourses extends GlobalSearchModule implements GlobalSearchFull
$semester = Semester::findByTimestamp($filter['semester']); $semester = Semester::findByTimestamp($filter['semester']);
$semester_ids = [$semester->id]; $semester_ids = [$semester->id];
} }
$semester_join = "LEFT JOIN semester_courses ON (courses.Seminar_id = semester_courses.course_id) ";
$semester_condition = " $semester_condition = "
AND ( 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'])) { if (!empty($filter['institute'])) {
...@@ -104,12 +103,11 @@ class GlobalSearchCourses extends GlobalSearchModule implements GlobalSearchFull ...@@ -104,12 +103,11 @@ class GlobalSearchCourses extends GlobalSearchModule implements GlobalSearchFull
{$language_name} AS `Name`, {$language_name} AS `Name`,
courses.`VeranstaltungsNummer`, courses.`status` courses.`VeranstaltungsNummer`, courses.`status`
FROM `seminare` AS courses FROM `seminare` AS courses
JOIN `semester_courses` ON courses.`seminar_id` = `semester_courses`.`course_id` LEFT JOIN `semester_courses` ON courses.`seminar_id` = `semester_courses`.`course_id`
JOIN `semester` USING (`semester_id`) LEFT JOIN `semester_data` USING (`semester_id`)
{$language_join} {$language_join}
JOIN `seminar_user` u ON (u.`Seminar_id` = courses.`Seminar_id` AND u.`status` = 'dozent') 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`) JOIN `auth_user_md5` a ON (a.`user_id` = u.`user_id`)
{$semester_join}
WHERE {$visibility} WHERE {$visibility}
( (
{$language_name} LIKE {$query} {$language_name} LIKE {$query}
...@@ -120,7 +118,7 @@ class GlobalSearchCourses extends GlobalSearchModule implements GlobalSearchFull ...@@ -120,7 +118,7 @@ class GlobalSearchCourses extends GlobalSearchModule implements GlobalSearchFull
{$seminar_type_condition} {$seminar_type_condition}
{$semester_condition} {$semester_condition}
GROUP BY courses.Seminar_id GROUP BY courses.Seminar_id
ORDER BY `semester`.`beginn` DESC"; ORDER BY MAX(`semester_data`.`beginn`) DESC";
if (Config::get()->IMPORTANT_SEMNUMBER) { if (Config::get()->IMPORTANT_SEMNUMBER) {
$sql .= ", courses.`VeranstaltungsNummer`"; $sql .= ", courses.`VeranstaltungsNummer`";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment