From 982dfa46a0d8c80c5deeec773e6be4b493226024 Mon Sep 17 00:00:00 2001 From: Matt Young Date: Tue, 14 Oct 2025 17:35:14 -0500 Subject: [PATCH] Rehash monitor page to deal with prelims --- app/Http/Controllers/MonitorController.php | 24 +++++++++++- app/Models/Entry.php | 12 ++++++ resources/views/monitor/index.blade.php | 45 ++++++++++++++++++++++ routes/web.php | 1 + 4 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 resources/views/monitor/index.blade.php diff --git a/app/Http/Controllers/MonitorController.php b/app/Http/Controllers/MonitorController.php index 68d93f6..90d2faf 100644 --- a/app/Http/Controllers/MonitorController.php +++ b/app/Http/Controllers/MonitorController.php @@ -2,7 +2,11 @@ namespace App\Http\Controllers; +use App\Actions\Tabulation\CheckPrelimResult; use App\Models\Entry; +use App\Models\PrelimDefinition; + +use function compact; class MonitorController extends Controller { @@ -15,8 +19,26 @@ class MonitorController extends Controller $formRoute = 'monitor.enterFlag'; $title = 'Flag Entry'; - return view('tabulation.choose_entry', compact('method', 'formRoute', 'title')); + //return view('tabulation.choose_entry', compact('method', 'formRoute', 'title')); + $prelims = PrelimDefinition::with('audition')->get(); + $prelimDefinition = null; + return view('monitor.index', compact('prelims', 'prelimDefinition')); + + } + + public function prelimStatus(PrelimDefinition $prelimDefinition) + { + if (! auth()->user()->hasFlag('monitor')) { + abort(403); + } + $prelims = PrelimDefinition::with('audition')->get(); + $entries = $prelimDefinition->audition->entries()->with('student.school')->with('PrelimScoreSheets')->get(); + + // foreach ($entries as $entry) { + // app(CheckPrelimResult::class)->__invoke($entry); + // } + return view('monitor.index', compact('prelims', 'prelimDefinition', 'entries')); } public function flagForm() diff --git a/app/Models/Entry.php b/app/Models/Entry.php index 6eb5ba5..f4207e2 100644 --- a/app/Models/Entry.php +++ b/app/Models/Entry.php @@ -141,6 +141,18 @@ class Entry extends Model return $this->hasMany(PrelimScoreSheet::class); } + public function prelimResult() + { + if ($this->hasFlag('passed_prelim')) { + return 'passed'; + } + if ($this->hasFlag('failed_prelim')) { + return 'failed'; + } + + return null; + } + public function bonusScores(): HasMany { return $this->hasMany(BonusScore::class); diff --git a/resources/views/monitor/index.blade.php b/resources/views/monitor/index.blade.php new file mode 100644 index 0000000..011eace --- /dev/null +++ b/resources/views/monitor/index.blade.php @@ -0,0 +1,45 @@ + + Monitor Dashboard + + + Prelim Auditions + + + + @foreach ($prelims as $prelim) + + @endforeach + + + + @if($prelimDefinition) + + + + Entry + Name + School + Status + + + + @foreach($entries as $entry) + + {{ $prelimDefinition->audition->name }} {{ $entry->draw_number }} + {{ $entry->student->full_name() }} + {{ $entry->student->school->name }} + @if($entry->hasFlag('failed_prelim')) + Failed + @elseif($entry->hasFlag('passed_prelim')) + Passed + @else + Pending + @endif + + @endforeach + + + @endif + + diff --git a/routes/web.php b/routes/web.php index 102f0e8..11af1f9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -31,6 +31,7 @@ Route::prefix('filters')->middleware(['auth', 'verified'])->controller(FilterCon // Monitor Related Routes Route::prefix('monitor')->middleware(['auth', 'verified'])->controller(MonitorController::class)->group(function () { Route::get('/', 'index')->name('monitor.index'); + Route::get('/prelim/{prelimDefinition}', 'prelimStatus')->name('monitor.prelimStatus'); Route::post('/enter_flag', 'flagForm')->name('monitor.enterFlag'); Route::post('enter_flag/{entry}', 'storeFlag')->name('monitor.storeFlag'); });