aboutsummaryrefslogtreecommitdiff
path: root/lib/models/Course.class.php
diff options
context:
space:
mode:
authornoackorama <noackorama@gmail.com>2022-03-31 18:29:12 +0200
committernoackorama <noackorama@gmail.com>2022-03-31 18:29:12 +0200
commit7b16d960abc468abacd6b93a780a21709719ec5d (patch)
treeb5ed3d20d18a17a666a6e0f0bd89eb0a085a5768 /lib/models/Course.class.php
parentb7802baa589843f44f5cbed5a04dd522bd54daa0 (diff)
closes #844 re #377
Diffstat (limited to 'lib/models/Course.class.php')
-rw-r--r--lib/models/Course.class.php9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/models/Course.class.php b/lib/models/Course.class.php
index 5a41e02..63e5186 100644
--- a/lib/models/Course.class.php
+++ b/lib/models/Course.class.php
@@ -311,12 +311,15 @@ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, Fe
{
$end_semester = $this->semesters->last();
$start_semester = $this->semesters->first();
+ if ($start_semester->id === $semester->id) {
+ return;
+ }
if ($end_semester) {
if (count($this->semesters) > 1 && $end_semester->beginn < $semester->beginn) {
throw new InvalidArgumentException('start-semester must start before end-semester');
}
foreach ($this->semesters as $key => $one_semester) {
- if ($one_semester->beginn <= $semester->beginn) {
+ if ($one_semester->beginn < $semester->beginn) {
$this->semesters->offsetUnset($key);
}
}
@@ -334,7 +337,11 @@ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, Fe
*/
public function setEndSemester(?Semester $semester)
{
+ $end_semester = $this->semesters->last();
$start_semester = $this->semesters->first();
+ if ((is_null($end_semester) && is_null($semester)) || ($end_semester->id === $semester->id)) {
+ return;
+ }
if ($start_semester) {
if ($semester && $start_semester->beginn > $semester->beginn) {
throw new InvalidArgumentException('end-semester must start after start-semester');