diff --git a/app/Http/Controllers/Admin/EntryController.php b/app/Http/Controllers/Admin/EntryController.php index 31f27a5..ba2a3af 100644 --- a/app/Http/Controllers/Admin/EntryController.php +++ b/app/Http/Controllers/Admin/EntryController.php @@ -9,82 +9,95 @@ use App\Models\School; use App\Models\Student; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; + use function compact; class EntryController extends Controller { public function index() { - if(! Auth::user()->is_admin) abort(403); + if (! Auth::user()->is_admin) { + abort(403); + } $filters = session('adminEntryFilters') ?? null; $minGrade = Audition::min('minimum_grade'); $maxGrade = Audition::max('maximum_grade'); $auditions = Audition::orderBy('score_order')->get(); $schools = School::orderBy('name')->get(); - - $entries = Entry::with(['student.school','audition']); - $entries->orderBy('updated_at','DESC'); - if($filters) { - if($filters['id']) { + $entries = Entry::with(['student.school', 'audition']); + $entries->orderBy('updated_at', 'DESC'); + if ($filters) { + if ($filters['id']) { $entries->where('id', $filters['id']); } - if($filters['audition']) { + if ($filters['audition']) { $entries->where('audition_id', $filters['audition']); } - if($filters['school']) { - $entries->whereHas('student', function($query) use ($filters) { + if ($filters['school']) { + $entries->whereHas('student', function ($query) use ($filters) { $query->where('school_id', '=', $filters['school']); }); } - if($filters['grade']) { - $entries->whereHas('student', function($query) use ($filters) { + if ($filters['grade']) { + $entries->whereHas('student', function ($query) use ($filters) { $query->where('grade', $filters['grade']); }); } - if($filters['first_name']) { - $entries->whereHas('student', function($query) use ($filters) { - $query->where('first_name', 'like', '%' . $filters['first_name'] . '%'); + if ($filters['first_name']) { + $entries->whereHas('student', function ($query) use ($filters) { + $query->where('first_name', 'like', '%'.$filters['first_name'].'%'); }); } - if($filters['last_name']) { - $entries->whereHas('student', function($query) use ($filters) { - $query->where('last_name', 'like', '%' . $filters['last_name'] . '%'); + if ($filters['last_name']) { + $entries->whereHas('student', function ($query) use ($filters) { + $query->where('last_name', 'like', '%'.$filters['last_name'].'%'); }); } } $entries = $entries->paginate(10); + return view('admin.entries.index', ['entries' => $entries, - 'auditions' => $auditions, - 'schools'=> $schools, - 'minGrade' => $minGrade, - 'maxGrade' => $maxGrade, - 'filters' => $filters] ); + 'auditions' => $auditions, + 'schools' => $schools, + 'minGrade' => $minGrade, + 'maxGrade' => $maxGrade, + 'filters' => $filters]); } public function create() { - if(! Auth::user()->is_admin) abort(403); + if (! Auth::user()->is_admin) { + abort(403); + } $students = Student::with('school')->orderBy('last_name')->orderBy('first_name')->get(); $auditions = Audition::orderBy('score_order')->get(); + return view('admin.entries.create', ['students' => $students, 'auditions' => $auditions]); } - public function store() + public function store(Request $request) { - if(! Auth::user()->is_admin) abort(403); - request()->validate([ + if (! Auth::user()->is_admin) { + abort(403); + } + $validData = request()->validate([ 'student_id' => ['required', 'exists:students,id'], 'audition_id' => ['required', 'exists:auditions,id'], ]); + $validData['for_seating'] = $request->get('for_seating') ? 1 : 0; + $validData['for_advancement'] = $request->get('for_advancement') ? 1 : 0; + Entry::create([ - 'student_id' => request('student_id'), - 'audition_id' => request('audition_id'), + 'student_id' => $validData['student_id'], + 'audition_id' => $validData['audition_id'], + 'for_seating' => $validData['for_seating'], + 'for_advancement' => $validData['for_advancement'], ]); return redirect('/admin/entries'); @@ -92,29 +105,37 @@ class EntryController extends Controller public function edit(Entry $entry) { - if(! Auth::user()->is_admin) abort(403); + if (! Auth::user()->is_admin) { + abort(403); + } $students = Student::with('school')->orderBy('last_name')->orderBy('first_name')->get(); $auditions = Audition::orderBy('score_order')->get(); $scores = $entry->scoreSheets()->get(); -// return view('admin.entries.edit', ['entry' => $entry, 'students' => $students, 'auditions' => $auditions]); - return view('admin.entries.edit', compact('entry', 'students', 'auditions','scores')); + + // return view('admin.entries.edit', ['entry' => $entry, 'students' => $students, 'auditions' => $auditions]); + return view('admin.entries.edit', compact('entry', 'students', 'auditions', 'scores')); } - public function update(Entry $entry) + public function update(Request $request, Entry $entry) { - if(! Auth::user()->is_admin) abort(403); - request()->validate([ + if (! Auth::user()->is_admin) { + abort(403); + } + $validData = request()->validate([ 'student_id' => ['required', 'exists:students,id'], 'audition_id' => ['required', 'exists:auditions,id'], ]); + $validData['for_seating'] = $request->get('for_seating') ? 1 : 0; + $validData['for_advancement'] = $request->get('for_advancement') ? 1 : 0; + $entry->update([ - 'student_id' => request('student_id'), - 'audition_id' => request('audition_id'), + 'student_id' => $validData['student_id'], + 'audition_id' => $validData['audition_id'], + 'for_seating' => $validData['for_seating'], + 'for_advancement' => $validData['for_advancement'], ]); return redirect('/admin/entries'); } - - } diff --git a/resources/views/admin/entries/create.blade.php b/resources/views/admin/entries/create.blade.php index 4360d22..486ce12 100644 --- a/resources/views/admin/entries/create.blade.php +++ b/resources/views/admin/entries/create.blade.php @@ -18,6 +18,21 @@ @endforeach + + @if(auditionSetting('advanceTo')) +
+ +
+
+ +
+ @else + + @endif Create Entry diff --git a/resources/views/admin/entries/edit.blade.php b/resources/views/admin/entries/edit.blade.php index bcf45e0..62592f1 100644 --- a/resources/views/admin/entries/edit.blade.php +++ b/resources/views/admin/entries/edit.blade.php @@ -2,9 +2,9 @@ Edit Entry #{{ $entry->id }} - + - + Student @foreach ($students as $student) @@ -14,16 +14,31 @@ @endforeach - + Audition @foreach ($auditions as $audition) - @endforeach + + @if(auditionSetting('advanceTo')) +
+ +
+
+ +
+ @else + + @endif +{{-- TODO need to be able to delete an entry--}}
Edit Entry diff --git a/resources/views/admin/entries/index.blade.php b/resources/views/admin/entries/index.blade.php index fe21746..71b8e3d 100644 --- a/resources/views/admin/entries/index.blade.php +++ b/resources/views/admin/entries/index.blade.php @@ -50,7 +50,7 @@ Entries - Click id to edit + Double click row to edit New Entry @@ -62,17 +62,37 @@ Student Grade School + @if(auditionSetting('advanceTo')) + {{ auditionSetting('auditionAbbreviation') }} + {{ auditionSetting('advanceTo') }} + @endif Entry Date @foreach($entries as $entry) - + {{ $entry->id }} {{ $entry->audition->name }} {{ $entry->student->full_name() }} {{ $entry->student->grade }} {{ $entry->student->school->name }} + @if(auditionSetting('advanceTo')) + + @if($entry->for_seating) + + @else + + @endif + + + @if($entry->for_advancement) + + @else + + @endif + + @endif {{ $entry->created_at->format('m/d/Y g:i A') }} @endforeach diff --git a/resources/views/admin/students/edit.blade.php b/resources/views/admin/students/edit.blade.php index 7e3ae8a..36dce16 100644 --- a/resources/views/admin/students/edit.blade.php +++ b/resources/views/admin/students/edit.blade.php @@ -22,8 +22,8 @@
- - Ecit Student + + Edit Student
diff --git a/routes/admin.php b/routes/admin.php index 9e5f9f8..4d6291f 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -74,7 +74,7 @@ Route::middleware(['auth', 'verified', CheckIfAdmin::class])->prefix('admin/')-> Route::get('/', 'index'); Route::get('/create', 'create'); Route::post('/', 'store'); - Route::get('/{entry}/edit', 'edit'); + Route::get('/{entry}/edit', 'edit')->name('admin.entries.edit'); Route::patch('/{entry}', 'update'); });