From afb530bcb840ff6f06db0771a55a501ea7fb0e20 Mon Sep 17 00:00:00 2001
From: David Siegfried <david.siegfried@uni-vechta.de>
Date: Thu, 11 Apr 2024 08:11:42 +0000
Subject: [PATCH] fixes #3996

Closes #3996

Merge request studip/studip!2846
---
 app/controllers/admin/courses.php | 163 ------------------------------
 1 file changed, 163 deletions(-)

diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php
index 7130cd2d221..4882f8eaa17 100644
--- a/app/controllers/admin/courses.php
+++ b/app/controllers/admin/courses.php
@@ -1447,169 +1447,6 @@ class Admin_CoursesController extends AuthenticatedController
         return $views;
     }
 
-    /**
-     * Returns all courses matching set criteria.
-     *
-     * @param array $params Additional parameters
-     * @param bool $display_all : boolean should we show all courses or check for a limit of 500 courses?
-     * @return array of courses
-     */
-    private function getCourses($params = [], $display_all = false)
-    {
-        // Init
-        if ($GLOBALS['user']->cfg->MY_INSTITUTES_DEFAULT === "all") {
-            $inst = new SimpleCollection($this->insts);
-            $inst->filter(function ($a) use (&$inst_ids) {
-                $inst_ids[] = $a->Institut_id;
-            });
-        } else {
-            //We must check, if the institute ID belongs to a faculty
-            //and has the string _i appended to it.
-            //In that case we must display the courses of the faculty
-            //and all its institutes.
-            //Otherwise we just display the courses of the faculty.
-
-            $inst_id = $GLOBALS['user']->cfg->MY_INSTITUTES_DEFAULT;
-
-            $institut = new Institute($inst_id);
-
-            if (!$institut->isFaculty() || $GLOBALS['user']->cfg->MY_INSTITUTES_INCLUDE_CHILDREN) {
-                // If the institute is not a faculty or the child insts are included,
-                // pick the institute IDs of the faculty/institute and of all sub-institutes.
-                $inst_ids[] = $inst_id;
-                if ($institut->isFaculty()) {
-                    foreach ($institut->sub_institutes->pluck('Institut_id') as $institut_id) {
-                        $inst_ids[] = $institut_id;
-                    }
-                }
-            } else {
-                // If the institute is a faculty and the child insts are not included,
-                // pick only the institute id of the faculty:
-                $inst_ids[] = $inst_id;
-            }
-        }
-
-        $active_elements = $this->getActiveElements();
-
-        $filter = AdminCourseFilter::get(true);
-
-        if ($params['datafields']) {
-            foreach ($params['datafields'] as $field_id => $value) {
-                $datafield = DataField::find($field_id);
-                if ($datafield) {
-                    //enable filtering by datafield values:
-                    //and use the where-clause for each datafield:
-                    $filter->settings['query']['joins']['de_'.$field_id] = [
-                        'table' => "datafields_entries",
-                        'join' => "LEFT JOIN",
-                        'on' => "seminare.seminar_id = de_".$field_id.".range_id"
-                    ];
-                    $filter->where("(de_".$field_id.".datafield_id = :fieldId_".$field_id." "
-                        . "AND de_".$field_id.".content = :fieldValue_".$field_id.") "
-                        . ($datafield['default_value'] == $value ? " OR (de_".$field_id.".content IS NULL)" : "")." ",
-                        [
-                            'fieldId_'.$field_id => $field_id,
-                            'fieldValue_'.$field_id => $value
-                        ]
-                    );
-                }
-            }
-        }
-
-        $filter->where("sem_classes.studygroup_mode = '0'");
-
-        // Get only children of given course
-        if (!empty($params['parent_course'])) {
-            $filter->where("parent_course = :parent",
-                [
-                    'parent' => $params['parent_course']
-                ]
-            );
-        }
-
-        if ($active_elements['semester'] && is_object($this->semester)) {
-            $filter->filterBySemester($this->semester->getId());
-        }
-        if ($active_elements['courseType'] && $params['typeFilter'] && $params['typeFilter'] !== "all") {
-            $parts = explode('_', $params['typeFilter']);
-            $class_filter = $parts[0];
-            $type_filter = $parts[1] ?? null;
-            if (!$type_filter && !empty($GLOBALS['SEM_CLASS'][$class_filter])) {
-                $type_filter = array_keys($GLOBALS['SEM_CLASS'][$class_filter]->getSemTypes());
-            }
-            $filter->filterByType($type_filter);
-        }
-        if ($active_elements['search'] && $GLOBALS['user']->cfg->ADMIN_COURSES_SEARCHTEXT) {
-            $filter->filterBySearchString($GLOBALS['user']->cfg->ADMIN_COURSES_SEARCHTEXT);
-        }
-        if ($active_elements['teacher'] && $GLOBALS['user']->cfg->ADMIN_COURSES_TEACHERFILTER && ($GLOBALS['user']->cfg->ADMIN_COURSES_TEACHERFILTER !== "all")) {
-            $filter->filterByDozent($GLOBALS['user']->cfg->ADMIN_COURSES_TEACHERFILTER);
-        }
-        if ($active_elements['institute']) {
-            $filter->filterByInstitute($inst_ids);
-        }
-        if ($GLOBALS['user']->cfg->MY_COURSES_SELECTED_STGTEIL && $GLOBALS['user']->cfg->MY_COURSES_SELECTED_STGTEIL !== 'all') {
-            $filter->filterByStgTeil($GLOBALS['user']->cfg->MY_COURSES_SELECTED_STGTEIL);
-        }
-        if ($params['sortby'] === "status") {
-            $filter->orderBy(sprintf('sem_classes.name %s, sem_types.name %s, VeranstaltungsNummer %s', $params['sortFlag'], $params['sortFlag'], $params['sortFlag']), $params['sortFlag']);
-        } elseif ($params['sortby'] === 'institute') {
-            $filter->orderBy('Institute.Name', $params['sortFlag']);
-        } elseif ($params['sortby']) {
-            $filter->orderBy($params['sortby'], $params['sortFlag']);
-        }
-        $filter->storeSettings();
-        $this->count_courses = $filter->countCourses();
-        if ($this->count_courses && ($this->count_courses <= $filter->max_show_courses || $display_all)) {
-            $courses = $filter->getCourses();
-        } else {
-            return [];
-        }
-
-        $seminars = [];
-        if (!empty($courses)) {
-            foreach ($courses as $seminar_id => $seminar) {
-                $seminars[$seminar_id] = $seminar[0];
-                $seminars[$seminar_id]['seminar_id'] = $seminar_id;
-                $seminars[$seminar_id]['obj_type'] = 'sem';
-                $dozenten = $this->getTeacher($seminar_id);
-                $seminars[$seminar_id]['dozenten'] = $dozenten;
-
-                if (in_array('contents', $params['view_filter'])) {
-                    $tools = new SimpleCollection(ToolActivation::findbyRange_id($seminar_id, "ORDER BY position"));
-                    $visit_data = get_objects_visits([$seminar_id], 0, null, null, $tools->pluck('plugin_id'));
-                    $seminars[$seminar_id]['visitdate'] = $visit_data[$seminar_id][0]['visitdate'];
-                    $seminars[$seminar_id]['last_visitdate'] = $visit_data[$seminar_id][0]['last_visitdate'];
-                    $seminars[$seminar_id]['tools'] = $tools;
-                    $seminars[$seminar_id]['navigation'] = MyRealmModel::getAdditionalNavigations(
-                        $seminar_id,
-                        $seminars[$seminar_id],
-                        $seminars[$seminar_id]['sem_class'] ?? null,
-                        $GLOBALS['user']->id,
-                        $visit_data[$seminar_id]
-                    );
-                }
-                //add last activity column:
-                if (in_array('last_activity', $params['view_filter'])) {
-                    $seminars[$seminar_id]['last_activity'] = lastActivity($seminar_id);
-                }
-                if ((int)$this->selected_action === 17) {
-                    $seminars[$seminar_id]['admission_locked'] = false;
-                    if ($seminar[0]['course_set']) {
-                        $set = new CourseSet($seminar[0]['course_set']);
-                        if (!is_null($set) && $set->hasAdmissionRule('LockedAdmission')) {
-                            $seminars[$seminar_id]['admission_locked'] = 'locked';
-                        } else {
-                            $seminars[$seminar_id]['admission_locked'] = 'disable';
-                        }
-                        unset($set);
-                    }
-                }
-            }
-        }
-
-        return $seminars;
-    }
 
     /**
      * Returns the teacher for a given cours
-- 
GitLab