Skip to content

Commit eaecd7b

Browse files
committed
Use display timezone in rotation ...
... instead using schedule timezone.
1 parent d533ec7 commit eaecd7b

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

library/Notifications/Widget/Timeline/Rotation.php

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
use DateInterval;
88
use DateTime;
9-
use DateTimeZone;
109
use Generator;
1110
use Icinga\Module\Notifications\Common\Links;
1211
use Icinga\Module\Notifications\Forms\RotationConfigForm;
@@ -80,11 +79,11 @@ public function getPriority(): int
8079
*/
8180
public function fetchTimeperiodEntries(DateTime $after, DateTime $until): Generator
8281
{
83-
$scheduleTimezone = new DateTimeZone($this->model->schedule->execute()->current()->timezone);
82+
$displayTimezone = $after->getTimezone();
8483

8584
$actualHandoff = null;
8685
if (RotationConfigForm::EXPERIMENTAL_OVERRIDES) {
87-
$actualHandoff = $this->model->actual_handoff->setTimezone($scheduleTimezone);
86+
$actualHandoff = $this->model->actual_handoff->setTimezone($displayTimezone);
8887
}
8988

9089
$entries = $this->model->timeperiod->timeperiod_entry
@@ -100,8 +99,8 @@ public function fetchTimeperiodEntries(DateTime $after, DateTime $until): Genera
10099
)
101100
));
102101
foreach ($entries as $timeperiodEntry) {
103-
$timeperiodEntry->start_time->setTimezone($scheduleTimezone);
104-
$timeperiodEntry->end_time->setTimezone($scheduleTimezone);
102+
$timeperiodEntry->start_time->setTimezone($displayTimezone);
103+
$timeperiodEntry->end_time->setTimezone($displayTimezone);
105104

106105
if ($timeperiodEntry->member->contact->id !== null) {
107106
$member = new Member($timeperiodEntry->member->contact->full_name);
@@ -121,7 +120,7 @@ public function fetchTimeperiodEntries(DateTime $after, DateTime $until): Genera
121120
}
122121
} // TODO: Yearly? (Those unoptimized single occurrences)
123122

124-
$before = (clone $after)->setTimezone($scheduleTimezone)->setTime(
123+
$before = (clone $after)->setTime(
125124
(int) $timeperiodEntry->start_time->format('H'),
126125
(int) $timeperiodEntry->start_time->format('i')
127126
);
@@ -133,7 +132,7 @@ public function fetchTimeperiodEntries(DateTime $after, DateTime $until): Genera
133132
$firstHandoff = $timeperiodEntry->start_time;
134133
}
135134

136-
$rrule = new RRule($timeperiodEntry->rrule);
135+
$rrule = new RRule($timeperiodEntry->rrule, $displayTimezone->getName());
137136
$rrule->startAt($firstHandoff);
138137

139138
$length = $timeperiodEntry->start_time->diff($timeperiodEntry->end_time);

0 commit comments

Comments
 (0)