diff --git a/app/Http/Controllers/Judging/PrelimJudgingController.php b/app/Http/Controllers/Judging/PrelimJudgingController.php
index ef6ede4..21fd1e0 100644
--- a/app/Http/Controllers/Judging/PrelimJudgingController.php
+++ b/app/Http/Controllers/Judging/PrelimJudgingController.php
@@ -24,7 +24,8 @@ class PrelimJudgingController extends Controller
$prelimScoresheets = PrelimScoreSheet::where('user_id', Auth::id())->get()->keyBy('entry_id');
- return view('judging.prelim_entry_list', compact('prelimDefinition', 'entries', 'subscores', 'published', 'prelimScoresheets'));
+ return view('judging.prelim_entry_list',
+ compact('prelimDefinition', 'entries', 'subscores', 'published', 'prelimScoresheets'));
}
public function prelimScoreEntryForm(Entry $entry)
@@ -70,4 +71,33 @@ class PrelimJudgingController extends Controller
return redirect()->route('judging.prelimEntryList', $entry->audition->prelimDefinition)->with('success',
'Entered prelim scores for '.$entry->audition->name.' '.$entry->draw_number);
}
+
+ public function updatePrelimScoreSheet(Entry $entry, Request $request, EnterPrelimScore $scribe)
+ {
+ if (auth()->user()->cannot('judge', $entry->audition->prelimDefinition)) {
+ return redirect()->route('dashboard')->with('error', 'You are not assigned to judge that prelim audition.');
+ }
+
+ // Validate form data
+ $subscores = $entry->audition->prelimDefinition->scoringGuide->subscores;
+ $validationChecks = [];
+ foreach ($subscores as $subscore) {
+ $validationChecks['score'.'.'.$subscore->id] = 'required|integer|max:'.$subscore->max_score;
+ }
+ $validatedData = $request->validate($validationChecks);
+
+ // Get the existing score
+ $scoreSheet = PrelimScoreSheet::where('user_id', auth()->user()->id)->where('entry_id', $entry->id)->first();
+
+ if (! $scoreSheet) {
+ return redirect()->back()->with('error', 'No score sheet exists.');
+ }
+
+ // Update the score
+ $scribe(auth()->user(), $entry, $validatedData['score'], $scoreSheet);
+
+ return redirect()->route('judging.prelimEntryList', $entry->audition->prelimDefinition)->with('success',
+ 'Updated prelim scores for '.$entry->audition->name.' '.$entry->draw_number);
+
+ }
}
diff --git a/resources/views/judging/prelim_entry_list.blade.php b/resources/views/judging/prelim_entry_list.blade.php
index 6cfaa81..1c308ad 100644
--- a/resources/views/judging/prelim_entry_list.blade.php
+++ b/resources/views/judging/prelim_entry_list.blade.php
@@ -5,7 +5,8 @@
{{ $prelimDefinition->audition->name }} Prelims
@if($published)
- Results are published. Scores cannot be changed.
+ Results are published. Scores cannot be changed.
+
@endif
@@ -13,7 +14,7 @@
Entry
@foreach($subscores as $subscore)
- {{ $subscore->name }}
+ {{ $subscore->name }}
@endforeach
Timestamp
@@ -23,14 +24,17 @@
{{-- @continue($entry->hasFlag('no_show'))--}}
- @if(! $published && ! $entry->hasFlag('no_show'))
+ @if(! $published && ! $entry->hasFlag('no_show') && $entry->scoreSheets()->count() < 1)
@endif
{{ $prelimDefinition->audition->name }} {{ $entry->draw_number }}
@if($entry->hasFlag('no_show'))
No Show
@endif
- @if(! $published && ! $entry->hasFlag('no_show'))
+ @if($entry->scoreSheets()->count() > 0)
+ Has Finals Scores
+ @endif
+ @if(! $published && ! $entry->hasFlag('no_show') && $entry->scoreSheets()->count() < 1)
@endif
diff --git a/routes/judging.php b/routes/judging.php
index 6776fb7..b4b6d78 100644
--- a/routes/judging.php
+++ b/routes/judging.php
@@ -22,6 +22,7 @@ Route::middleware(['auth', 'verified', CheckIfCanJudge::class])->prefix('judging
Route::get('/{prelimDefinition}', 'prelimEntryList')->name('judging.prelimEntryList');
route::get('/enterScore/{entry}', 'prelimScoreEntryForm')->name('judging.prelimScoreEntryForm');
route::post('/enterScore/{entry}', 'savePrelimScoreSheet')->name('judging.savePrelimScoreSheet');
+ route::patch('/enterScore/{entry}', 'updatePrelimScoreSheet')->name('judging.savePrelimScoreSheet');
});
// Bonus score judging routes