From 550614a317f30bd44889f1d8ceb73851e2625662 Mon Sep 17 00:00:00 2001 From: Matt Young Date: Sat, 25 Oct 2025 22:06:09 -0500 Subject: [PATCH] Show an error when an administrator attempts to duplicate an existing entry. --- app/Http/Requests/EntryStoreRequest.php | 8 ++++++++ resources/views/admin/entries/create.blade.php | 13 ++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/Http/Requests/EntryStoreRequest.php b/app/Http/Requests/EntryStoreRequest.php index 40a96f8..a85907b 100644 --- a/app/Http/Requests/EntryStoreRequest.php +++ b/app/Http/Requests/EntryStoreRequest.php @@ -3,6 +3,8 @@ namespace App\Http\Requests; use App\Models\Audition; +use App\Models\Entry; +use App\Models\Student; use Auth; use Carbon\Carbon; use Illuminate\Foundation\Http\FormRequest; @@ -44,6 +46,7 @@ class EntryStoreRequest extends FormRequest $validator->after(function ($validator) { $auditionId = $this->input('audition_id'); $audition = Audition::find($auditionId); + $student = Student::find($this->input('student_id')); if (! $audition) { $validator->errors()->add('audition_id', 'The selected audition does not exist.'); @@ -51,6 +54,11 @@ class EntryStoreRequest extends FormRequest return; } + if (Entry::where('student_id', $this->input('student_id'))->where('audition_id', $auditionId)->exists()) { + $validator->errors()->add('student_id', + $student->full_name().' is already entered in the '.$audition->name.' audition.'); + } + if (! Auth::user()->is_admin) { //Admins don't care about deadlines $currentDate = Carbon::now('America/Chicago')->format('Y-m-d'); diff --git a/resources/views/admin/entries/create.blade.php b/resources/views/admin/entries/create.blade.php index 1614157..854f433 100644 --- a/resources/views/admin/entries/create.blade.php +++ b/resources/views/admin/entries/create.blade.php @@ -2,9 +2,20 @@ Create Entry - + @if ($errors->any()) +
+ @foreach($errors->all() as $error) +
+ {{$error}} +
+ @endforeach +
+ @endif + + Student