dbe3677093feeaf1c34e97b99bdfe49fe28634f9
`dailyAt()`/`weeklyOn()` with no `->timezone()` are read against
`config('app.timezone')`, which is UTC on every box this platform runs on, so
every line here that pinned an hour was running seven or eight hours early.
Each now names \App\Support\Timezone::organisation(), the one place the
school's own zone is decided.
organisation() and not current(): there is no signed-in user on a scheduler
tick, so the two agreed only by falling through, and stop agreeing the moment
anything resolves the schedule inside a request. It reads a setting and cannot
throw — it catches its own failure and falls back to America/Vancouver.
The shell half ([dashboard-shell] #3144) carries the guard that keeps this
true: it walks the REAL schedule, so a snapins.lock bump that brings back an
unclocked line reddens the shell's run.
dashboard-ticketing
Description
Languages
PHP
100%