Add admin option to reset site.
This commit is contained in:
parent
b5cb2a7870
commit
15e46e493a
|
|
@ -24,7 +24,7 @@ class YearEndCleanup
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __invoke(array $options = []): void
|
public function __invoke(?array $options = []): void
|
||||||
{
|
{
|
||||||
$this->cleanup($options);
|
$this->cleanup($options);
|
||||||
}
|
}
|
||||||
|
|
@ -35,13 +35,16 @@ class YearEndCleanup
|
||||||
*
|
*
|
||||||
* @throws AuditionAdminException
|
* @throws AuditionAdminException
|
||||||
*/
|
*/
|
||||||
public function cleanup(array $options = []): true
|
public function cleanup(?array $options = []): true
|
||||||
{
|
{
|
||||||
|
|
||||||
if (! auth()->user() or ! auth()->user()->is_admin) {
|
if (! auth()->user() or ! auth()->user()->is_admin) {
|
||||||
throw new AuditionAdminException('Only administrators may perform this action');
|
throw new AuditionAdminException('Only administrators may perform this action');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$historian = new RecordHistoricalSeats;
|
||||||
|
$historian();
|
||||||
|
|
||||||
// Delete all records in the audit_log_entries table
|
// Delete all records in the audit_log_entries table
|
||||||
AuditLogEntry::truncate();
|
AuditLogEntry::truncate();
|
||||||
AuditionFlag::truncate();
|
AuditionFlag::truncate();
|
||||||
|
|
@ -57,20 +60,22 @@ class YearEndCleanup
|
||||||
|
|
||||||
Student::query()->increment('grade');
|
Student::query()->increment('grade');
|
||||||
|
|
||||||
if (in_array('deleteRooms', $options)) {
|
if (is_array($options)) {
|
||||||
DB::table('auditions')->update(['room_id' => null]);
|
if (in_array('deleteRooms', $options)) {
|
||||||
DB::table('auditions')->update(['order_in_room' => '0']);
|
DB::table('auditions')->update(['room_id' => null]);
|
||||||
DB::table('room_user')->truncate();
|
DB::table('auditions')->update(['order_in_room' => '0']);
|
||||||
DB::table('rooms')->delete();
|
DB::table('room_user')->truncate();
|
||||||
}
|
DB::table('rooms')->delete();
|
||||||
|
}
|
||||||
|
|
||||||
if (in_array('removeAuditionsFromRoom', $options)) {
|
if (in_array('removeAuditionsFromRoom', $options)) {
|
||||||
DB::table('auditions')->update(['room_id' => null]);
|
DB::table('auditions')->update(['room_id' => null]);
|
||||||
DB::table('auditions')->update(['order_in_room' => '0']);
|
DB::table('auditions')->update(['order_in_room' => '0']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array('unassignJudges', $options)) {
|
if (in_array('unassignJudges', $options)) {
|
||||||
DB::table('room_user')->truncate();
|
DB::table('room_user')->truncate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue