diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php
index af3b5c721be5d5387ca7fbe6cdabedb0bb591e21..b3c7ec82a634d60ac239add2773b5c8e2db08a30 100644
--- a/app/controllers/admin/courses.php
+++ b/app/controllers/admin/courses.php
@@ -103,7 +103,7 @@ class Admin_CoursesController extends AuthenticatedController
                     false,
                     null,
                     null,
-                    $datafields_filters[$datafield->id]
+                    $datafields_filters[$datafield->id] ?? null
                 );
                 $textWidget->setOnSubmitHandler("STUDIP.AdminCourses.App.changeFilter({'df_".$datafield->id."': $(this).find('input').val()}); return false;");
                 return $textWidget;
@@ -866,9 +866,9 @@ class Admin_CoursesController extends AuthenticatedController
             $view_filters = $this->getViewFilters();
 
             $data = [];
-            foreach ($courses as $course_id => $course) {
-                $course_model = Course::find($course_id);
-                $sem = new Seminar($course_model);
+
+            foreach ($courses as $course) {
+                $sem = new Seminar($course);
                 $row = [];
 
                 if (in_array('number', $filter_config)) {
@@ -876,14 +876,14 @@ class Admin_CoursesController extends AuthenticatedController
                 }
 
                 if (in_array('name', $filter_config)) {
-                    $row['name'] = $course_model->name;
+                    $row['name'] = $course->name;
                 }
 
                 if (in_array('type', $filter_config)) {
                     $row['type'] = sprintf(
                         '%s: %s',
-                        $sem->getSemClass()['name'],
-                        $sem->getSemType()['name']
+                        $course->getSemClass()['name'],
+                        $course->getSemType()['name']
                     );
                 }
 
@@ -896,15 +896,18 @@ class Admin_CoursesController extends AuthenticatedController
                 }
 
                 if (in_array('requests', $filter_config)) {
-                    $row['requests'] = $course['room_requests'];
+                    $row['requests'] = $course->room_requests->count();
                 }
 
                 if (in_array('teachers', $filter_config)) {
                     $row['teachers'] = implode(
                         ', ',
-                        $course->teachers->map(function ($d) {
-                            return $d->user->getFullName();
-                        })
+                        array_map(
+                            function ($d) {
+                                return $d->getUserFullName();
+                            },
+                            CourseMember::findByCourseAndStatus($course->id, 'dozent')
+                        )
                     );
                 }
 
@@ -935,7 +938,7 @@ class Admin_CoursesController extends AuthenticatedController
                 foreach (PluginManager::getInstance()->getPlugins('AdminCourseContents') as $plugin) {
                     foreach ($plugin->adminAvailableContents() as $index => $label) {
                         if (in_array($plugin->getPluginId() . "_" . $index, $filter_config)) {
-                            $content = $plugin->adminAreaGetCourseContent($course_model, $index);
+                            $content = $plugin->adminAreaGetCourseContent($course, $index);
                             $row[$plugin->getPluginId() . "_" . $index] = strip_tags(is_a($content, 'Flexi_Template')
                                 ? $content->render()
                                 : $content