From 0142b925f6e4d3f8e3c0660b5c8c4bc9377b3a0e Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Wed, 23 Oct 2024 07:04:26 +0000 Subject: [PATCH] preselect only institute, fixes #4241 Closes #4241 Merge request studip/studip!3450 --- app/controllers/admin/courses.php | 9 +++++++-- lib/classes/sidebar/SelectListElement.php | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php index 8a641901e73..7cdf64e79c2 100644 --- a/app/controllers/admin/courses.php +++ b/app/controllers/admin/courses.php @@ -171,11 +171,16 @@ class Admin_CoursesController extends AuthenticatedController Now draw the configurable elements according to the values inside the visibleElements array. */ + $institute_id = null; + if (!empty($visibleElements['search'])) { $this->setSearchWiget(); } if (!empty($visibleElements['institute'])) { - $filter->addElement($this->getInstSelector()); + $inst_selector = $filter->addElement($this->getInstSelector()); + if (count($inst_selector->getOptions()) === 1) { + $institute_id = $this->insts[0]['Institut_id']; + } } if (!empty($visibleElements['semester'])) { $filter->addElement($this->getSemesterSelector()); @@ -187,7 +192,7 @@ class Admin_CoursesController extends AuthenticatedController $filter->addElement($this->getCourseTypeWidget()); } if (!empty($visibleElements['teacher'])) { - $filter->addElement($this->getTeacherWidget()); + $filter->addElement($this->getTeacherWidget($institute_id)); } $sidebar->addWidget($filter, 'filter'); diff --git a/lib/classes/sidebar/SelectListElement.php b/lib/classes/sidebar/SelectListElement.php index 479961791b5..1927d653464 100644 --- a/lib/classes/sidebar/SelectListElement.php +++ b/lib/classes/sidebar/SelectListElement.php @@ -30,6 +30,11 @@ class SelectListElement extends WidgetElement implements ArrayAccess $this->options = $options; } + public function getOptions(): array + { + return $this->options; + } + public function render() { $option_content = ''; -- GitLab