From f70e52b5d4043141982d36c56032063d6141115c Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Fri, 27 Sep 2024 12:00:49 +0000 Subject: [PATCH] prevent warnings in times/rooms, fixes #4647 Closes #4647 Merge request studip/studip!3458 --- app/controllers/course/timesrooms.php | 32 +++++++++++++-------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/app/controllers/course/timesrooms.php b/app/controllers/course/timesrooms.php index 783f5d2be57..3d55469a8c3 100644 --- a/app/controllers/course/timesrooms.php +++ b/app/controllers/course/timesrooms.php @@ -59,14 +59,21 @@ class Course_TimesroomsController extends AuthenticatedController PageLayout::setTitle($title); - $dates_in_time_range = CourseDate::countBySql( - "`range_id` = :course_id AND `date` BETWEEN :beginning AND :end", - [ - 'course_id' => $this->course->id, - 'beginning' => $this->course->start_semester->beginn, - 'end' => $this->course->end_semester->vorles_ende - ] - ) > 0; + $parameters = [ + ':course_id' => $this->course->id, + ':beginning' => $this->course->start_semester->beginn, + ]; + if ($this->course->isOpenEnded()) { + $condition_in = '`range_id` = :course_id AND `date` >= :beginning'; + $condition_out = '`range_id` = :course_id AND `date` < :beginning'; + } else { + $condition_in = '`range_id` = :course_id AND `date` BETWEEN :beginning AND :end'; + $condition_out = '`range_id` = :course_id AND `date` NOT BETWEEN :beginning AND :end'; + $parameters[':end'] = $this->course->end_semester->vorles_ende; + } + + $dates_in_time_range = CourseDate::countBySql($condition_in, $parameters) > 0; + $dates_outside_of_time_range = CourseDate::countBySql($condition_out, $parameters) > 0; URLHelper::bindLinkParam('semester_filter', $this->semester_filter); @@ -84,15 +91,6 @@ class Course_TimesroomsController extends AuthenticatedController $selectable_semesters = $this->course->semesters->toArray(); } - $dates_outside_of_time_range = CourseDate::countBySql( - "`range_id` = :course_id AND `date` NOT BETWEEN :beginning AND :end", - [ - 'course_id' => $this->course->id, - 'beginning' => $this->course->start_semester->beginn, - 'end' => $this->course->end_semester->vorles_ende - ] - ) > 0; - if (count($selectable_semesters) > 1 || (count($selectable_semesters) == 1 && $dates_outside_of_time_range)) { $selectable_semesters[] = ['name' => _('Alle Semester'), 'semester_id' => 'all']; } -- GitLab