From 6e4e17f0a9602f1c340301a44f7b059aa86ea763 Mon Sep 17 00:00:00 2001 From: Matt Young Date: Wed, 26 Jun 2024 17:16:39 -0500 Subject: [PATCH] Tabulation page for managing advancement is working as intended --- .../Tabulation/AdvancementController.php | 26 ++++++++++++++++++- .../tabulation/advancement/ranking.blade.php | 7 +++-- .../advancement/results-table.blade.php | 10 +++++-- routes/tabulation.php | 2 ++ 4 files changed, 40 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Tabulation/AdvancementController.php b/app/Http/Controllers/Tabulation/AdvancementController.php index 0ab0e21..9581faa 100644 --- a/app/Http/Controllers/Tabulation/AdvancementController.php +++ b/app/Http/Controllers/Tabulation/AdvancementController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Tabulation; use App\Http\Controllers\Controller; use App\Models\Audition; +use App\Models\Entry; use App\Services\TabulationService; use Illuminate\Http\Request; @@ -31,6 +32,29 @@ class AdvancementController extends Controller return $entry->scoring_complete; }); - return view('tabulation.advancement.ranking', compact('audition', 'entries','scoringComplete')); + return view('tabulation.advancement.ranking', compact('audition', 'entries', 'scoringComplete')); + } + + public function setAuditionPassers(Request $request, Audition $audition) + { + $passingEntries = $request->input('pass'); + $passingEntries = array_keys($passingEntries); + $audition->addFlag('advancement_published'); + $entries = Entry::whereIn('id', $passingEntries)->get(); + foreach ($entries as $entry) { + $entry->addFlag('will_advance'); + } + + return redirect()->route('advancement.ranking', ['audition' => $audition->id])->with('success', 'Passers have been set successfully'); + } + + public function clearAuditionPassers(Request $request, Audition $audition) + { + $audition->removeFlag('advancement_published'); + foreach ($audition->entries as $entry) { + $entry->removeFlag('will_advance'); + } + + return redirect()->route('advancement.ranking', ['audition' => $audition->id])->with('success', 'Passers have been cleared successfully'); } } diff --git a/resources/views/tabulation/advancement/ranking.blade.php b/resources/views/tabulation/advancement/ranking.blade.php index ad2f5a3..948a549 100644 --- a/resources/views/tabulation/advancement/ranking.blade.php +++ b/resources/views/tabulation/advancement/ranking.blade.php @@ -1,12 +1,15 @@ {{ auditionSetting('advanceTo') }} Advancement - {{ $audition->name }} - +
@include('tabulation.advancement.results-table')
- @if($scoringComplete) + @if( $audition->hasFlag('advancement_published') ) + @method('DELETE') + Clear Advancement + @elseif($scoringComplete) Pass Entries diff --git a/resources/views/tabulation/advancement/results-table.blade.php b/resources/views/tabulation/advancement/results-table.blade.php index 4d602d8..5fcd732 100644 --- a/resources/views/tabulation/advancement/results-table.blade.php +++ b/resources/views/tabulation/advancement/results-table.blade.php @@ -30,9 +30,15 @@ @endif - @if($scoringComplete) + @if( $audition->hasFlag('advancement_published') ) - + @if($entry->hasFlag('will_advance')) + + @endif + + @elseif($scoringComplete) + + @endif diff --git a/routes/tabulation.php b/routes/tabulation.php index f79826a..b2523cf 100644 --- a/routes/tabulation.php +++ b/routes/tabulation.php @@ -26,6 +26,8 @@ Route::middleware(['auth', 'verified', CheckIfCanTab::class])->group(function () Route::prefix('advancement/')->controller(\App\Http\Controllers\Tabulation\AdvancementController::class)->group(function () { Route::get('/status', 'status')->name('advancement.status'); Route::get('/{audition}', 'ranking')->name('advancement.ranking'); + Route::post('/{audition}', 'setAuditionPassers')->name('advancement.setAuditionPassers'); + Route::delete('/{audition}', 'clearAuditionPassers')->name('advancement.clearAuditionPassers'); }); // Doubler decision routes