From d33baf07ea43bdfa970969e2b026526ef3e6c4a0 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Thu, 1 Feb 2024 19:16:59 +0000
Subject: [PATCH] fixes #3702

Closes #3702

Merge request studip/studip!2573
---
 app/controllers/search/module.php   |  9 +++++++--
 app/views/search/module/_modul.php  | 12 ++++++++++--
 lib/classes/I18NStringDatafield.php |  2 +-
 lib/models/Modul.php                |  2 +-
 lib/models/Modulteil.php            |  2 +-
 5 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/app/controllers/search/module.php b/app/controllers/search/module.php
index 38106ea7d92..e772d1efe11 100644
--- a/app/controllers/search/module.php
+++ b/app/controllers/search/module.php
@@ -112,8 +112,13 @@ class Search_ModuleController extends MVVController
                 $modul = Modul::find($mod_id);
                 $start_sem = Semester::find($modul->start);
                 $end_sem = Semester::find($modul->end);
-                if ($start_sem->beginn > $this->selected_semester->beginn
-                        || ($this->selected_semester->ende > $end_sem->ende && $end_sem != null)) {
+                if (
+                    $start_sem->beginn > $this->selected_semester->beginn
+                    || (
+                        isset($end_sem)
+                        && $this->selected_semester->ende > $end_sem->ende
+                    )
+                ) {
                     unset($this->search_result['Modul'][$i]);
                 }
             }
diff --git a/app/views/search/module/_modul.php b/app/views/search/module/_modul.php
index 53c05d87310..2fdd755de1e 100644
--- a/app/views/search/module/_modul.php
+++ b/app/views/search/module/_modul.php
@@ -1,4 +1,12 @@
-<tbody class="<?= $modul_id == $modul->id ? 'not-collapsed' : 'collapsed' ?>">
+<?php
+/**
+ * @var string|null $modul_id
+ * @var Modul $modul
+ * @var Semester $selected_semester
+ * @var Search_ModuleController $controller
+ */
+?>
+<tbody class="<?= (isset($modul_id) && $modul_id == $modul->id) ? 'not-collapsed' : 'collapsed' ?>">
     <tr class="table-header header-row" id="modul_<?= htmlReady($modul->id) ?>">
         <td style="vertical-align: middle; text-align: center;">
             <a data-dialog="size=auto" title="<?= htmlReady($modul->getDisplayName()) . ' (' . _('Vollständige Modulbeschreibung') . ')' ?>" href="<?= $controller->link_for('shared/modul/description/' . $modul->id) ?>">
@@ -25,7 +33,7 @@
         <? endif; ?>
         </td>
     </tr>
-<? if ($details_id == $modul->id): ?>
+<? if (isset($details_id) && $details_id == $modul->id): ?>
     <?= $this->render_partial('search/module/details') ?>
 <? endif; ?>
 </tbody>
diff --git a/lib/classes/I18NStringDatafield.php b/lib/classes/I18NStringDatafield.php
index 26e51a81ec3..5eee65d4d2a 100644
--- a/lib/classes/I18NStringDatafield.php
+++ b/lib/classes/I18NStringDatafield.php
@@ -91,7 +91,7 @@ class I18NStringDatafield extends I18NString
                 "`datafield_id` = ? AND `range_id` = ? AND `sec_range_id` = ? AND `lang` = ''",
                 $object_id
             );
-            $base = $df->content;
+            $base = $df->content ?? '';
         }
         $table = null;
         $field = null;
diff --git a/lib/models/Modul.php b/lib/models/Modul.php
index 2d8757c4262..1d0ca3353d4 100644
--- a/lib/models/Modul.php
+++ b/lib/models/Modul.php
@@ -1034,7 +1034,7 @@ class Modul extends ModuleManagementModelTreeItem
         foreach ($this->modulteile as $modulteil) {
             $mt_courses = $modulteil->getAssignedCoursesBySemester($semester_id, $only_visible);
             foreach ($mt_courses as $course) {
-                $courses[$course->id] = $course;
+                $courses[$course['seminar_id']] = $course;
             }
         }
         return $courses;
diff --git a/lib/models/Modulteil.php b/lib/models/Modulteil.php
index 427610b43c5..089246bf487 100644
--- a/lib/models/Modulteil.php
+++ b/lib/models/Modulteil.php
@@ -394,7 +394,7 @@ class Modulteil extends ModuleManagementModelTreeItem
         foreach ($this->lvgruppen as $lvgruppe) {
             $lvg_courses = $lvgruppe->getAssignedCoursesBySemester($semester_id, $only_visible);
             foreach ($lvg_courses as $course) {
-                $courses[$course->id] = $course;
+                $courses[$course['seminar_id']] = $course;
             }
         }
         return $courses;
-- 
GitLab