From 15e46e493a3aa6f8be8b6aca5ca6a80cd80fbe45 Mon Sep 17 00:00:00 2001 From: Matt Young Date: Thu, 29 May 2025 22:11:08 -0500 Subject: [PATCH] Add admin option to reset site. --- .../YearEndProcedures/YearEndCleanup.php | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/app/Actions/YearEndProcedures/YearEndCleanup.php b/app/Actions/YearEndProcedures/YearEndCleanup.php index 8605c03..933340b 100644 --- a/app/Actions/YearEndProcedures/YearEndCleanup.php +++ b/app/Actions/YearEndProcedures/YearEndCleanup.php @@ -24,7 +24,7 @@ class YearEndCleanup { } - public function __invoke(array $options = []): void + public function __invoke(?array $options = []): void { $this->cleanup($options); } @@ -35,13 +35,16 @@ class YearEndCleanup * * @throws AuditionAdminException */ - public function cleanup(array $options = []): true + public function cleanup(?array $options = []): true { if (! auth()->user() or ! auth()->user()->is_admin) { throw new AuditionAdminException('Only administrators may perform this action'); } + $historian = new RecordHistoricalSeats; + $historian(); + // Delete all records in the audit_log_entries table AuditLogEntry::truncate(); AuditionFlag::truncate(); @@ -57,20 +60,22 @@ class YearEndCleanup Student::query()->increment('grade'); - if (in_array('deleteRooms', $options)) { - DB::table('auditions')->update(['room_id' => null]); - DB::table('auditions')->update(['order_in_room' => '0']); - DB::table('room_user')->truncate(); - DB::table('rooms')->delete(); - } + if (is_array($options)) { + if (in_array('deleteRooms', $options)) { + DB::table('auditions')->update(['room_id' => null]); + DB::table('auditions')->update(['order_in_room' => '0']); + DB::table('room_user')->truncate(); + DB::table('rooms')->delete(); + } - if (in_array('removeAuditionsFromRoom', $options)) { - DB::table('auditions')->update(['room_id' => null]); - DB::table('auditions')->update(['order_in_room' => '0']); - } + if (in_array('removeAuditionsFromRoom', $options)) { + DB::table('auditions')->update(['room_id' => null]); + DB::table('auditions')->update(['order_in_room' => '0']); + } - if (in_array('unassignJudges', $options)) { - DB::table('room_user')->truncate(); + if (in_array('unassignJudges', $options)) { + DB::table('room_user')->truncate(); + } } return true;