Skip to content
Snippets Groups Projects
Commit 038a5bdc authored by Elmar Ludwig's avatar Elmar Ludwig
Browse files

start counting weeks from the current week of `vorles_beginn`, fixes #2608

Closes #2608

Merge request studip/studip!2151
parent 2ae8194d
No related branches found
No related tags found
No related merge requests found
......@@ -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);
}
......
......@@ -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 = [];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment