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')) +