aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorThomas Hackl <hackl@data-quest.de>2025-03-18 13:02:30 +0000
committerThomas Hackl <hackl@data-quest.de>2025-03-18 13:02:30 +0000
commitca3286025e776c803d863927fdee026340f42ae4 (patch)
treeea341f3cce9276b36ffe003b7f90a74c176c0c8f /lib
parent51bd332813aafa3ebeb37db69950e5a3ab657cc8 (diff)
Resolve "Vorlesungsverzeichnis: Der Filter nach einer Veranstaltungskategorie liefert keine Ergebnisse"
Closes #5243 Merge request studip/studip!4052
Diffstat (limited to 'lib')
-rw-r--r--lib/classes/JsonApi/Routes/Tree/CoursesOfTreeNode.php2
-rw-r--r--lib/classes/StudipTreeNodeCourseTrait.php17
2 files changed, 5 insertions, 14 deletions
diff --git a/lib/classes/JsonApi/Routes/Tree/CoursesOfTreeNode.php b/lib/classes/JsonApi/Routes/Tree/CoursesOfTreeNode.php
index 5ad91f0..26d29b5 100644
--- a/lib/classes/JsonApi/Routes/Tree/CoursesOfTreeNode.php
+++ b/lib/classes/JsonApi/Routes/Tree/CoursesOfTreeNode.php
@@ -56,7 +56,7 @@ class CoursesOfTreeNode extends JsonApiController
$courses = \SimpleCollection::createFromArray(
$node->getCourses(
$filters['semester'],
- $filters['semclass'],
+ (int) $filters['semclass'],
$filters['q'],
(bool) $filters['recursive'],
$filters['ids']
diff --git a/lib/classes/StudipTreeNodeCourseTrait.php b/lib/classes/StudipTreeNodeCourseTrait.php
index 23ea992..0d3b360 100644
--- a/lib/classes/StudipTreeNodeCourseTrait.php
+++ b/lib/classes/StudipTreeNodeCourseTrait.php
@@ -17,7 +17,7 @@ trait StudipTreeNodeCourseTrait
$condition .= " LEFT JOIN `semester_courses` sc ON ({$alias}.`seminar_id` = sc.`course_id`)
LEFT JOIN `semester_data` sd USING (`semester_id`)
WHERE (sc.`semester_id` = :semester OR sc.`semester_id` IS NULL)";
- $parameters[':semester'] = $semester_id;
+ $parameters['semester'] = $semester_id;
$order_by[] = 'sd.`beginn`';
} else {
$condition .= " WHERE 1";
@@ -27,19 +27,10 @@ trait StudipTreeNodeCourseTrait
$condition .= " AND s.`visible` = 1";
}
- if ($sem_class) {
+ if ($sem_class !== 0) {
$condition .= " AND s.`status` IN (:types)";
- $parameters['types'] = array_map(
- function ($type) {
- return $type['id'];
- },
- array_filter(
- SemType::getTypes(),
- function ($t) use ($sem_class) {
- return $t['class'] === $sem_class;
- }
- )
- );
+ $semclass = new SemClass($sem_class);
+ $parameters['types'] = array_keys($semclass->getSemTypes());
}
if ($searchterm) {