diff options
| author | Rasmus Fuhse <fuhse@data-quest.de> | 2023-08-23 14:57:39 +0200 |
|---|---|---|
| committer | Rasmus Fuhse <fuhse@data-quest.de> | 2023-08-23 14:57:39 +0200 |
| commit | b9516cf97a85b03983d9355d5c36fe8efd33cdda (patch) | |
| tree | 560a3db15376f014616597d0d24a44cbb156e89e /app/controllers/admin/courses.php | |
| parent | 91fde2de39dee6f630728d6c1236b9e6903022e6 (diff) | |
re #3084issue-3084
Diffstat (limited to 'app/controllers/admin/courses.php')
| -rw-r--r-- | app/controllers/admin/courses.php | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php index af3b5c7..b0a5551 100644 --- a/app/controllers/admin/courses.php +++ b/app/controllers/admin/courses.php @@ -235,6 +235,17 @@ class Admin_CoursesController extends AuthenticatedController )->asDialog('size=auto'); $sidebar->addWidget($export); } + + foreach (PluginManager::getInstance()->getPlugins('AdminCourseWidgetPlugin') as $plugin) { + foreach ($plugin->getWidgets() as $index => $widget) { + $position = $plugin->getPositionInSidebar($index); + if ($position) { + $sidebar->insertWidget($widget, $position, $index); + } else { + $sidebar->addWidget($widget, $index); + } + } + } } @@ -315,21 +326,26 @@ class Admin_CoursesController extends AuthenticatedController ? $configuration->MY_INSTITUTES_DEFAULT : null; + $filters = array_merge( + $this->getDatafieldFilters(), + [ + 'institut_id' => $institut_id, + 'search' => $configuration->ADMIN_COURSES_SEARCHTEXT, + 'semester_id' => $configuration->MY_COURSES_SELECTED_CYCLE, + 'course_type' => $configuration->MY_COURSES_TYPE_FILTER, + 'stgteil' => $configuration->MY_COURSES_SELECTED_STGTEIL, + 'teacher_filter' => $configuration->ADMIN_COURSES_TEACHERFILTER, + ] + ); + + foreach (PluginManager::getInstance()->getPlugins('AdminCourseWidgetPlugin') as $plugin) { + $filters = array_merge($filters, $plugin->getFilterValues()); + } return [ 'setActivatedFields' => $this->getFilterConfig(), 'setActionArea' => $configuration->MY_COURSES_ACTION_AREA ?? '1', - 'setFilter' => array_filter(array_merge( - $this->getDatafieldFilters(), - [ - 'institut_id' => $institut_id, - 'search' => $configuration->ADMIN_COURSES_SEARCHTEXT, - 'semester_id' => $configuration->MY_COURSES_SELECTED_CYCLE, - 'course_type' => $configuration->MY_COURSES_TYPE_FILTER, - 'stgteil' => $configuration->MY_COURSES_SELECTED_STGTEIL, - 'teacher_filter' => $configuration->ADMIN_COURSES_TEACHERFILTER, - ] - )), + 'setFilter' => array_filter($filters), ]; } @@ -406,6 +422,12 @@ class Admin_CoursesController extends AuthenticatedController } $GLOBALS['user']->cfg->store('ADMIN_COURSES_DATAFIELDS_FILTERS', $datafields_filters); + foreach (PluginManager::getInstance()->getPlugins('AdminCourseWidgetPlugin') as $plugin) { + foreach ($plugin->getWidgets() as $name => $widget) { + $plugin->setFilter($name, Request::get($name)); + } + } + $filter = AdminCourseFilter::get(); if (Request::option('course_id')) { //we have only one course and want to see if that course is part of the result set $filter->query->where('course_id', 'seminare.Seminar_id = :course_id', ['course_id' => Request::option('course_id')]); |
