From 23e466c2e69bc7b2683cf6d819fbe4f5e70ff8ee Mon Sep 17 00:00:00 2001 From: Matt Young Date: Mon, 20 Jan 2025 16:58:21 -0600 Subject: [PATCH] Add export entry data option --- app/Actions/Reports/ExportEntryData.php | 46 +++++++++++++++++++ .../layout/navbar/menus/admin.blade.php | 1 + routes/admin.php | 2 + 3 files changed, 49 insertions(+) create mode 100644 app/Actions/Reports/ExportEntryData.php diff --git a/app/Actions/Reports/ExportEntryData.php b/app/Actions/Reports/ExportEntryData.php new file mode 100644 index 0000000..d371e15 --- /dev/null +++ b/app/Actions/Reports/ExportEntryData.php @@ -0,0 +1,46 @@ +getData(); + } + + public function getData() + { + // Room, Audition, Draw Number, Name, School + $ranker = App::make(RankAuditionEntries::class); + $exportRows = [ + 'Room,Audition,Draw Number,Student Name,School', + ]; + $rooms = Room::all(); + foreach ($rooms as $room) { + $auditions = $room->auditions()->orderBy('room_id')->orderBy('order_in_room')->get(); + foreach ($auditions as $audition) { + $entries = $audition->entries()->orderBy('draw_number')->get(); + foreach ($entries as $entry) { + $thisRow = $audition->room->name.','; + $thisRow .= $audition->name.','; + $thisRow .= $entry->draw_number.','; + $thisRow .= $entry->student->full_name().','; + $thisRow .= $entry->student->school->name.','; + $exportRows[] = $thisRow; + } + } + } + + //dd($exportRows); + return $exportRows; + } +} diff --git a/resources/views/components/layout/navbar/menus/admin.blade.php b/resources/views/components/layout/navbar/menus/admin.blade.php index 973f229..b9cff60 100644 --- a/resources/views/components/layout/navbar/menus/admin.blade.php +++ b/resources/views/components/layout/navbar/menus/admin.blade.php @@ -27,6 +27,7 @@ Entries View Logs Export Results + Export Entries Print Stand Name Tags diff --git a/routes/admin.php b/routes/admin.php index 59a3477..13a4c17 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -9,6 +9,7 @@ use App\Http\Controllers\Admin\DrawController; use App\Http\Controllers\Admin\EnsembleController; use App\Http\Controllers\Admin\EntryController; use App\Http\Controllers\Admin\EventController; +use App\Http\Controllers\Admin\ExportEntriesController; use App\Http\Controllers\Admin\ExportResultsController; use App\Http\Controllers\Admin\PrintCards; use App\Http\Controllers\Admin\PrintRoomAssignmentsController; @@ -27,6 +28,7 @@ Route::middleware(['auth', 'verified', CheckIfAdmin::class])->prefix('admin/')-> Route::view('/', 'admin.dashboard')->name('admin.dashboard'); Route::get('/logs', App\Http\Controllers\Admin\LogViewer::class)->name('admin.view_logs'); Route::get('/export_results', ExportResultsController::class)->name('admin.export_results'); + Route::get('/export_entries', ExportEntriesController::class)->name('admin.export_entries'); Route::get('/print_stand_name_tags', PrintStandNameTagsController::class)->name('admin.print_stand_name_tags'); Route::get('/recap', [RecapController::class, 'selectAudition'])->name('admin.recap.selectAudition'); Route::get('/recap/{audition}', [RecapController::class, 'showRecap'])->name('admin.recap.recap');