diff --git a/app/controllers/calendar/schedule.php b/app/controllers/calendar/schedule.php index 5d9a26ef6e9bd45e863fbcad3e833d18dae32d60..cf70dd3184cc6a79fd5f877f4641543a846d9656 100644 --- a/app/controllers/calendar/schedule.php +++ b/app/controllers/calendar/schedule.php @@ -83,17 +83,20 @@ class Calendar_ScheduleController extends AuthenticatedController // check, if the hidden seminar-entries shall be shown $show_hidden = Request::int('show_hidden', 0); + // load semester-data and current semester $this->semesters = array_reverse(Semester::findAllVisible(false)); - if (Request::option('semester_id')) { - $this->current_semester = Semester::find(Request::option('semester_id')); - $schedule_settings['semester_id'] = Request::option('semester_id'); - UserConfig::get($GLOBALS['user']->id)->store('SCHEDULE_SETTINGS', - $schedule_settings); - } else { - $this->current_semester = !empty($schedule_settings['semester_id']) ? - Semester::find($schedule_settings['semester_id']) : - Semester::findCurrent(); + $this->current_semester = Semester::findCurrent(); + + $semester_id = Request::option('semester_id', $schedule_settings['semester_id'] ?? null); + if ($semester_id && Semester::exists($semester_id)) { + $this->current_semester = Semester::find($semester_id); + + $schedule_settings['semester_id'] = $this->current_semester->id; + User::findCurrent()->getConfiguration()->store( + 'SCHEDULE_SETTINGS', + $schedule_settings + ); } // check type-safe if days is false otherwise sunday (0) cannot be chosen