From b08012913fae1f5fd996e39e792a921cb506e3b4 Mon Sep 17 00:00:00 2001
From: David Siegfried <david.siegfried@uni-vechta.de>
Date: Fri, 10 Jun 2022 12:36:43 +0000
Subject: [PATCH] don't try to serialize SORM instance in room-search, fixes
 #1146

Closes #1146

Merge request studip/studip!685
---
 lib/classes/sidebar/RoomSearchWidget.class.php             | 5 +++--
 templates/sidebar/room-search-criteria-available-range.php | 4 ++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/lib/classes/sidebar/RoomSearchWidget.class.php b/lib/classes/sidebar/RoomSearchWidget.class.php
index 8f2aec6129c..0b06a7fc6a6 100644
--- a/lib/classes/sidebar/RoomSearchWidget.class.php
+++ b/lib/classes/sidebar/RoomSearchWidget.class.php
@@ -10,9 +10,11 @@ class RoomSearchWidget extends SidebarWidget
     protected $criteria;
     protected $selected_criteria;
     protected $defined_properties;
+    protected $semesters;
 
     protected function setupSearchParameters()
     {
+        $this->semesters = array_reverse(Semester::getAll());
         $this->defined_properties = RoomManager::getAllRoomPropertyDefinitions(
             true,
             [
@@ -121,7 +123,6 @@ class RoomSearchWidget extends SidebarWidget
         }
 
         $current_semester = Semester::findCurrent();
-        $all_semesters = Semester::getAll();
         $begin = new DateTime();
         $begin = $begin->setTimestamp($current_semester->beginn);
         $begin->setTime(intval(date('H')), 0, 0);
@@ -134,7 +135,6 @@ class RoomSearchWidget extends SidebarWidget
             'optional' => false,
             'enabled' => false,
             'semester' => [
-                'objects' => $all_semesters,
                 'value' => $current_semester->id
             ],
             'range' => [
@@ -561,6 +561,7 @@ class RoomSearchWidget extends SidebarWidget
             'criteria'          => $this->criteria,
             'selected_criteria' => $this->selected_criteria,
             'action_link'       => $this->action_link,
+            'semesters'         => $this->semesters
         ]);
 
         return $GLOBALS['template_factory']->render(
diff --git a/templates/sidebar/room-search-criteria-available-range.php b/templates/sidebar/room-search-criteria-available-range.php
index 4157e352bd2..aeba82396fe 100644
--- a/templates/sidebar/room-search-criteria-available-range.php
+++ b/templates/sidebar/room-search-criteria-available-range.php
@@ -48,8 +48,8 @@
             <div><?= _('Semester') ?></div>
             <select name="<?= htmlReady($criteria['name'] . '_semester_id') ?>">
                 <option value=""><?= _('Bitte wählen') ?></option>
-                <? if (is_array($criteria['semester']['objects'])): ?>
-                    <? foreach ($criteria['semester']['objects'] as $semester): ?>
+                <? if (is_array($semesters)) : ?>
+                    <? foreach ($semesters as $semester): ?>
                         <option value="<?= htmlReady($semester->id) ?>"
                                 <?= ($semester->id == $criteria['semester']['value']
                                    ? 'selected="selected"'
-- 
GitLab