diff options
| author | Jan-Hendrik Willms <tleilax+github@gmail.com> | 2024-10-25 09:37:51 +0200 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+github@gmail.com> | 2024-10-25 09:37:51 +0200 |
| commit | c2a4da64dcbb8db4df4419ac7a3f683dd1cdcbe9 (patch) | |
| tree | f24fe5d3cb19da2a665402d29159d7fb2354d412 /lib/models/Course.php | |
| parent | 04aedd8af97a2125f6deac773166d45c2983f45d (diff) | |
fix Course::getDatesWithExDates() in the wake of the changes in #4758, re #4758
Diffstat (limited to 'lib/models/Course.php')
| -rw-r--r-- | lib/models/Course.php | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/lib/models/Course.php b/lib/models/Course.php index d7ffff7..17c06ca 100644 --- a/lib/models/Course.php +++ b/lib/models/Course.php @@ -1906,17 +1906,25 @@ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, Fe */ public function getDatesWithExdates($range_begin = 0, $range_end = 0) { - $dates = []; - if (($range_begin > 0) && ($range_end > 0) && ($range_end > $range_begin)) { - $ex_dates = $this->ex_dates->findBy('content', '', '<>') - ->findBy('date', $range_begin, '>=') - ->findBy('end_time', $range_end, '<='); - $dates = $this->dates->findBy('date', $range_begin, '>=') - ->findBy('end_time', $range_end, '<='); - $dates->merge($ex_dates); + $dates = SimpleCollection::createFromArray([]); + if ( + $range_begin > 0 + && $range_end > 0 + && $range_end > $range_begin + ) { + $dates->merge( + $this->dates->findBy('date', $range_begin, '>=') + ->findBy('end_time', $range_end, '<=') + ); + + $dates->merge( + $this->ex_dates->findBy('content', '', '<>') + ->findBy('date', $range_begin, '>=') + ->findBy('end_time', $range_end, '<=') + ); } else { - $dates = $this->ex_dates->findBy('content', '', '<>'); $dates->merge($this->dates); + $dates->merge($this->ex_dates->findBy('content', '', '<>')); } $dates->uasort(function($a, $b) { return $a->date - $b->date |
