From 83773002244ced4b3082570175a68349baa7e28a Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Fri, 19 Apr 2024 13:17:59 +0000 Subject: [PATCH] consistently uses CourseManagementSelectWidget on all sites of the course management, fixes #4030 Closes #4030 Merge request studip/studip!2887 --- app/controllers/admin/additional.php | 2 ++ app/controllers/avatar.php | 6 ++++++ app/controllers/course/grouping.php | 5 +++++ app/controllers/course/lvgselector.php | 5 +++++ app/controllers/course/timesrooms.php | 19 +++---------------- app/controllers/questionnaire.php | 9 +++++++++ public/admin_evaluation.php | 7 +++++++ 7 files changed, 37 insertions(+), 16 deletions(-) diff --git a/app/controllers/admin/additional.php b/app/controllers/admin/additional.php index a98da200483..6f8f08c5cef 100644 --- a/app/controllers/admin/additional.php +++ b/app/controllers/admin/additional.php @@ -30,6 +30,8 @@ class Admin_AdditionalController extends AuthenticatedController throw new AccessDeniedException(_("Sie haben keine Berechtigung diese " . "Veranstaltung zu verändern.")); } + + Sidebar::get()->addWidget(new CourseManagementSelectWidget()); } /** diff --git a/app/controllers/avatar.php b/app/controllers/avatar.php index c549cf09759..aafbb986cd1 100644 --- a/app/controllers/avatar.php +++ b/app/controllers/avatar.php @@ -62,8 +62,14 @@ class AvatarController extends AuthenticatedController Navigation::activateItem('/admin/institute/details'); } else { Navigation::activateItem('/course/admin/avatar'); + + if ($GLOBALS['perm']->have_studip_perm('admin', $id)) { + $widget = new CourseManagementSelectWidget(); + Sidebar::get()->addWidget($widget); + } } + $avatar = $class::getAvatar($id); $this->avatar = $avatar->getURL($class::NORMAL); $this->customized = $avatar->is_customized(); diff --git a/app/controllers/course/grouping.php b/app/controllers/course/grouping.php index 4f35b53452d..1729d995292 100644 --- a/app/controllers/course/grouping.php +++ b/app/controllers/course/grouping.php @@ -36,6 +36,11 @@ class Course_GroupingController extends AuthenticatedController if (!$GLOBALS['perm']->have_studip_perm('tutor', $this->course->id)) { throw new AccessDeniedException(_('Sie haben leider nicht die notwendige Berechtigung für diese Aktion.')); } + + if ($GLOBALS['perm']->have_studip_perm('admin', $this->course_id)) { + $widget = new CourseManagementSelectWidget(); + Sidebar::get()->addWidget($widget); + } } /** diff --git a/app/controllers/course/lvgselector.php b/app/controllers/course/lvgselector.php index 3542a114320..171f3d52422 100644 --- a/app/controllers/course/lvgselector.php +++ b/app/controllers/course/lvgselector.php @@ -37,6 +37,11 @@ class Course_LvgselectorController extends AuthenticatedController $widget = new HelpbarWidget(); $widget->addElement(new WidgetElement(_('Auf dieser Seite kann die Veranstaltung ausgewählten Lehrveranstaltungsgruppen zugeordnet werden.'))); Helpbar::get()->addWidget($widget); + + if ($GLOBALS['perm']->have_studip_perm('admin', $this->course_id)) { + $widget = new CourseManagementSelectWidget(); + Sidebar::get()->addWidget($widget); + } } /** diff --git a/app/controllers/course/timesrooms.php b/app/controllers/course/timesrooms.php index 41a78a819bf..1f0ab17b532 100644 --- a/app/controllers/course/timesrooms.php +++ b/app/controllers/course/timesrooms.php @@ -1485,23 +1485,10 @@ class Course_TimesroomsController extends AuthenticatedController } Sidebar::Get()->addWidget($widget); - if ($GLOBALS['perm']->have_perm('admin')) { - $list = new SelectWidget( - _('Veranstaltungen'), - $this->indexURL(), - 'cid' - ); - foreach (AdminCourseFilter::get()->getCoursesForAdminWidget() as $seminar) { - $list->addElement(new SelectElement( - $seminar['Seminar_id'], - $seminar['Name'], - $seminar['Seminar_id'] === Context::getId(), - $seminar['VeranstaltungsNummer'] . ' ' . $seminar['Name'] - )); - } - $list->size = 8; - Sidebar::Get()->addWidget($list); + if ($GLOBALS['perm']->have_studip_perm('admin', $this->course_id)) { + $widget = new CourseManagementSelectWidget(); + Sidebar::get()->addWidget($widget); } } diff --git a/app/controllers/questionnaire.php b/app/controllers/questionnaire.php index d0766ed132d..2da457ce624 100644 --- a/app/controllers/questionnaire.php +++ b/app/controllers/questionnaire.php @@ -52,7 +52,16 @@ class QuestionnaireController extends AuthenticatedController if (!$GLOBALS['perm']->have_studip_perm("tutor", $this->range_id)) { throw new AccessDeniedException("Only for logged in users."); } + Navigation::activateItem("/course/admin/questionnaires"); + if ($GLOBALS['perm']->have_studip_perm('admin', $this->course_id)) { + // Ensure the select widget is added last + NotificationCenter::on('SidebarWillRender', function () { + $widget = new CourseManagementSelectWidget(); + Sidebar::get()->addWidget($widget); + }); + } + $this->statusgruppen = Statusgruppen::findByRange_id($this->range_id); $this->questionnaires = Questionnaire::findBySQL( "INNER JOIN questionnaire_assignments USING (questionnaire_id) WHERE (questionnaire_assignments.range_id = ? AND questionnaire_assignments.range_type = ?) OR (questionnaire_assignments.range_id IN (?) AND questionnaire_assignments.range_type = 'statusgruppe') ORDER BY questionnaires.chdate DESC", diff --git a/public/admin_evaluation.php b/public/admin_evaluation.php index f702173df54..bee8ccece17 100644 --- a/public/admin_evaluation.php +++ b/public/admin_evaluation.php @@ -66,6 +66,13 @@ if ($view === 'eval_inst') { require_once 'lib/admin_search.inc.php'; } else if (Context::getId() && $view == "eval_sem") { Navigation::activateItem('/course/admin/evaluation'); + if ($GLOBALS['perm']->have_studip_perm('admin', Context::getId())) { + // Ensure the select widget is added last + NotificationCenter::on('SidebarWillRender', function () { + $widget = new CourseManagementSelectWidget(); + Sidebar::get()->addWidget($widget); + }); + } } else { Navigation::activateItem('/contents/evaluation'); } -- GitLab