From a8be22e908b4256d3729369027d3e88fba000e2a Mon Sep 17 00:00:00 2001
From: Ron Lucke
Date: Tue, 17 Sep 2024 09:40:11 +0000
Subject: Courseware: Arbeitsplatz->Courseware->Meine Veranstaltungen zeigt nur
ein Lernmaterial pro VA an
Closes #4590
Merge request studip/studip!3402
---
app/controllers/contents/courseware.php | 42 ++++++----------------
app/views/contents/courseware/courses_overview.php | 7 ++--
2 files changed, 14 insertions(+), 35 deletions(-)
diff --git a/app/controllers/contents/courseware.php b/app/controllers/contents/courseware.php
index 2a99c08..0337e6a 100644
--- a/app/controllers/contents/courseware.php
+++ b/app/controllers/contents/courseware.php
@@ -252,37 +252,15 @@ class Contents_CoursewareController extends CoursewareController
if ($sem_key !== 'all') {
$semester = Semester::find($sem_key);
- $courses = $courses->filter(function ($a) use ($semester) {
- if ($a->isInSemester($semester)) {
- return true;
- }
- return false;
+ $courses = $courses->filter(function (Course $course) use ($semester) {
+ return $course->isInSemester($semester);
});
-
- $coursewares = [];
-
- foreach ($courses as $course) {
- $element = StructuralElement::getCoursewareCourse($course->id);
- if (!$element || !$element->canRead(User::findCurrent())) {
- continue;
- }
-
- $element['payload'] = json_decode($element['payload'], true);
- $coursewares[] = $element;
- }
-
- if (!$coursewares) {
- return [];
- }
-
- return [$semester->id => [
- 'semester_name' => $semester->name,
- 'coursewares' => $coursewares
- ]];
- } else {
- $sem_courses = [];
- foreach ($courses as $course) {
- $element = StructuralElement::getCoursewareCourse($course->id);
+ }
+ $sem_courses = [];
+ foreach ($courses as $course) {
+ $units = Unit::findCoursesUnits($course);
+ foreach ($units as $unit) {
+ $element = $unit->structural_element;
if (!$element || !$element->canRead(User::findCurrent())) {
continue;
}
@@ -296,9 +274,9 @@ class Contents_CoursewareController extends CoursewareController
$sem_courses[$end_semester->id]['coursewares'][] = $element;
}
}
-
- return $sem_courses;
}
+
+ return $sem_courses;
}
/**
diff --git a/app/views/contents/courseware/courses_overview.php b/app/views/contents/courseware/courses_overview.php
index f6a3d98..61fba02 100644
--- a/app/views/contents/courseware/courses_overview.php
+++ b/app/views/contents/courseware/courses_overview.php
@@ -25,7 +25,8 @@
if ($element->getImageUrl() === null) : ?>
-
+
+
else : ?>
endif; ?>
@@ -36,7 +37,7 @@
= htmlReady($element['payload']['description']) ?>
-