From 038a5bdccdc8d47d3d7342e2d2f9a1d350585e48 Mon Sep 17 00:00:00 2001 From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> Date: Tue, 12 Sep 2023 16:54:44 +0000 Subject: [PATCH] start counting weeks from the current week of `vorles_beginn`, fixes #2608 Closes #2608 Merge request studip/studip!2151 --- lib/models/Semester.class.php | 15 +-------------- lib/raumzeit/MetaDate.class.php | 17 +++-------------- 2 files changed, 4 insertions(+), 28 deletions(-) diff --git a/lib/models/Semester.class.php b/lib/models/Semester.class.php index 1a490a60c78..a380781196d 100644 --- a/lib/models/Semester.class.php +++ b/lib/models/Semester.class.php @@ -410,20 +410,7 @@ class Semester extends SimpleORMap */ public function getCorrectedLectureBegin() { - $dow = (int)date('w', $this->vorles_beginn); - - // Date is already on a monday - if ($dow === 1) { - return $this->vorles_beginn; - } - - // Saturday or sunday: return next monday - if ($dow === 0 || $dow === 6) { - return strtotime('next monday', $this->vorles_beginn); - } - - // Otherwise return last monday - return strtotime('last monday', $this->vorles_beginn); + return strtotime('this week monday', $this->vorles_beginn); } diff --git a/lib/raumzeit/MetaDate.class.php b/lib/raumzeit/MetaDate.class.php index b74b871f6be..0af632d0f09 100644 --- a/lib/raumzeit/MetaDate.class.php +++ b/lib/raumzeit/MetaDate.class.php @@ -550,18 +550,7 @@ class MetaDate $passed = true; } if ($passed && ($sem_end >= $val['vorles_ende']) && ($startAfterTimeStamp <= $val['ende'])) { - // correction calculation, if the semester does not start on monday - $dow = (int)date('w', $val['vorles_beginn']); - if ($dow === 0) { - $corr = 1; - } elseif ($dow <= 5) { - $corr = ($dow - 1) * -1; - } elseif ($dow == 6) { - $corr = 2; - } else { - $corr = 0; - } - $ret[$val['semester_id']] = $this->getVirtualSingleDatesForSemester($metadate_id, $val['vorles_beginn'], $val['vorles_ende'], $startAfterTimeStamp, $corr); + $ret[$val['semester_id']] = $this->getVirtualSingleDatesForSemester($metadate_id, $val['vorles_beginn'], $val['vorles_ende'], $startAfterTimeStamp); } } @@ -575,10 +564,10 @@ class MetaDate * @param int timestamp of semester start * @param int timestamp of semester end * @param int alternative timestamp to start from - * @param int correction calculation, if the semester does not start on monday (number of days?) + * @param int correction calculation (obsolete) * @return array returns an array of two arrays of SingleDate objects: 'dates' => all new and surviving dates, 'dates_to_delete' => obsolete dates */ - function getVirtualSingleDatesForSemester($metadate_id, $sem_begin, $sem_end, $startAfterTimeStamp, $corr) + function getVirtualSingleDatesForSemester($metadate_id, $sem_begin, $sem_end, $startAfterTimeStamp, $corr = 0) { $dates = []; $dates_to_delete = []; -- GitLab