From b4b0e9687ec5e9dd5eb6eeb629e6486c8efb8744 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Mon, 30 Sep 2024 09:59:15 +0000
Subject: [PATCH] fix sem query regarding semesters in StudipNews, fixes #4648

Closes #4648

Merge request studip/studip!3464
---
 app/controllers/news.php  | 2 +-
 lib/models/StudipNews.php | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/app/controllers/news.php b/app/controllers/news.php
index 973646e687d..745dafddee6 100644
--- a/app/controllers/news.php
+++ b/app/controllers/news.php
@@ -493,7 +493,7 @@ class NewsController extends StudipController
             $this->news_enddate   = $this->getTimeStamp(Request::get('news_enddate'), 'end') ?: time();
         }
         // fetch news list
-        $this->news_items = StudipNews::getNewsRangesByFilter($GLOBALS['user']->id, $this->area_type, $this->news_searchterm, $this->news_startdate, $this->news_enddate, true, $limit+1);
+        $this->news_items = StudipNews::GetNewsRangesByFilter($GLOBALS['user']->id, $this->area_type, $this->news_searchterm, $this->news_startdate, $this->news_enddate, true, $limit+1);
         // build area and filter description
         if ($this->news_searchterm && $this->area_type && $this->area_type !== 'all') {
             if ($this->news_startdate && $this->news_enddate) {
diff --git a/lib/models/StudipNews.php b/lib/models/StudipNews.php
index 4166d8151c0..2311d66ee72 100644
--- a/lib/models/StudipNews.php
+++ b/lib/models/StudipNews.php
@@ -251,10 +251,10 @@ class StudipNews extends SimpleORMap implements PrivacyObject
                 break;
             case 'sem':
                 $select_querypart   = 'CONCAT(news_id, "_", range_id) AS idx, range_id, seminare.Name AS title, '
-                    .'seminare.start_time AS start, news.*, seminare.start_time, sd1.name AS startsem, '
-                    .'IFNULL((SELECT semester_data.name FROM semester_data INNER JOIN semester_courses USING (semester_id) WHERE semester_courses.course_id = seminare.Seminar_id ORDER BY semester_data.beginn DESC LIMIT 1), "'._("unbegrenzt").'") AS endsem ';
-                $from_querypart     = 'news INNER JOIN news_range USING(news_id) INNER JOIN seminare ON Seminar_id = range_id '
-                    .'LEFT JOIN semester_data sd1 ON (start_time BETWEEN sd1.beginn AND sd1.ende) ';
+                    .'news.*, '
+                    .'IFNULL((SELECT semester_data.name FROM semester_data JOIN semester_courses USING (semester_id) WHERE semester_courses.course_id = seminare.Seminar_id ORDER BY semester_data.beginn ASC LIMIT 1), "'._('unbegrenzt').'") AS startsem, '
+                    .'IFNULL((SELECT semester_data.name FROM semester_data JOIN semester_courses USING (semester_id) WHERE semester_courses.course_id = seminare.Seminar_id ORDER BY semester_data.beginn DESC LIMIT 1), "'._('unbegrenzt').'") AS endsem ';
+                $from_querypart     = 'news INNER JOIN news_range USING(news_id) INNER JOIN seminare ON Seminar_id = range_id ';
                 if (Config::get()->SORT_NEWS_BY_CHDATE) {
                     $order_querypart = 'seminare.Name, news.chdate DESC, news.date DESC';
                 } else {
-- 
GitLab