diff --git a/app/Http/Controllers/NominationEnsembles/NominationEnsembleEntryController.php b/app/Http/Controllers/NominationEnsembles/NominationEnsembleEntryController.php index 4e77875..5d47fa2 100644 --- a/app/Http/Controllers/NominationEnsembles/NominationEnsembleEntryController.php +++ b/app/Http/Controllers/NominationEnsembles/NominationEnsembleEntryController.php @@ -8,15 +8,15 @@ interface NominationEnsembleEntryController { public function index(); - public function show(NominationEnsembleEntry $ensemble); + public function show(NominationEnsembleEntry $entry); public function create(); public function store(); - public function edit(NominationEnsembleEntry $ensemble); + public function edit(NominationEnsembleEntry $entry); - public function update(NominationEnsembleEntry $ensemble); + public function update(NominationEnsembleEntry $entry); - public function destroy(NominationEnsembleEntry $ensemble); + public function destroy(NominationEnsembleEntry $entry); } diff --git a/app/Http/Controllers/NominationEnsembles/ScobdaNominationEnsembleEntryController.php b/app/Http/Controllers/NominationEnsembles/ScobdaNominationEnsembleEntryController.php index 019b28b..33b6f50 100644 --- a/app/Http/Controllers/NominationEnsembles/ScobdaNominationEnsembleEntryController.php +++ b/app/Http/Controllers/NominationEnsembles/ScobdaNominationEnsembleEntryController.php @@ -50,10 +50,11 @@ class ScobdaNominationEnsembleEntryController extends Controller implements Nomi } return view('nomination_ensembles.scobda.entries.index', - compact('ensembles', 'availableStudents', 'availableInstruments', 'nominatedStudents', 'nominationsAvailable')); + compact('ensembles', 'availableStudents', 'availableInstruments', 'nominatedStudents', + 'nominationsAvailable')); } - public function show(NominationEnsembleEntry $ensemble) + public function show(NominationEnsembleEntry $entry) { // TODO: Implement show() method. } @@ -92,6 +93,10 @@ class ScobdaNominationEnsembleEntryController extends Controller implements Nomi } $student = Student::find($validData['new_student']); + if (auth()->user()->school_id !== $student->school_id) { + return redirect()->route('nomination.entry.index')->with('error', + 'You may only nominate students from your school'); + } $nextRank = $this->collapseNominations($student->school, $proposedEnsemble, 'next'); if ($nextRank > $proposedEnsemble->data['max_nominations']) { return redirect()->route('nomination.entry.index')->with('error', @@ -111,19 +116,25 @@ class ScobdaNominationEnsembleEntryController extends Controller implements Nomi 'Nomination Recorded'); } - public function edit(NominationEnsembleEntry $ensemble) + public function edit(NominationEnsembleEntry $entry) { // TODO: Implement edit() method. } - public function update(NominationEnsembleEntry $ensemble) + public function update(NominationEnsembleEntry $entry) { // TODO: Implement update() method. } - public function destroy(NominationEnsembleEntry $ensemble) + public function destroy(NominationEnsembleEntry $entry) { - // TODO: Implement destroy() method. + if ($entry->student->school_id !== auth()->user()->school_id) { + return redirect()->route('nomination.entry.index')->with('error', + 'You may only delete nominations from your school'); + } + $entry->delete(); + + return redirect()->route('nomination.entry.index')->with('success', 'Nomination Deleted'); } /** diff --git a/resources/views/nomination_ensembles/scobda/entries/index.blade.php b/resources/views/nomination_ensembles/scobda/entries/index.blade.php index f8fb115..c486156 100644 --- a/resources/views/nomination_ensembles/scobda/entries/index.blade.php +++ b/resources/views/nomination_ensembles/scobda/entries/index.blade.php @@ -17,11 +17,21 @@ +{{-- List existing nominations--}} @foreach($nominatedStudents[$ensemble->id] as $nomination) {{ $nomination->data['rank'] }} {{ $nomination->student->full_name() }} {{ $nomination->data['instrument'] }} + + + Confirm you wish to delete the nomination of {{ $nomination->student->full_name() }}
+ for the {{ $ensemble->name }} ensemble. +
+
@endforeach diff --git a/routes/nominationEnsemble.php b/routes/nominationEnsemble.php index 3d23dae..de35017 100644 --- a/routes/nominationEnsemble.php +++ b/routes/nominationEnsemble.php @@ -18,5 +18,6 @@ Route::middleware(['auth', 'verified'])->prefix('nominations/')->group(function Route::controller(NominationEnsembleEntryController::class)->group(function () { Route::get('/', 'index')->name('nomination.entry.index'); Route::post('/', 'store')->name('nomination.entry.store'); + Route::delete('/{entry}', 'destroy')->name('nomination.entry.destroy'); }); });