diff options
| author | noackorama <noackorama@gmail.com> | 2022-03-31 18:29:12 +0200 |
|---|---|---|
| committer | noackorama <noackorama@gmail.com> | 2022-03-31 18:29:12 +0200 |
| commit | 7b16d960abc468abacd6b93a780a21709719ec5d (patch) | |
| tree | b5ed3d20d18a17a666a6e0f0bd89eb0a085a5768 /lib/models/Course.class.php | |
| parent | b7802baa589843f44f5cbed5a04dd522bd54daa0 (diff) | |
closes #844 re #377
Diffstat (limited to 'lib/models/Course.class.php')
| -rw-r--r-- | lib/models/Course.class.php | 9 |
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'); |
