Subscores can be deleted from a scoring guide

This commit is contained in:
Matt Young 2024-06-27 14:22:05 -05:00
parent 4a21fb39ce
commit a96e7f4206
3 changed files with 31 additions and 2 deletions

View File

@ -135,6 +135,9 @@ class ScoringGuideController extends Controller
if (! $guide->exists() || ! $subscore->exists()) { if (! $guide->exists() || ! $subscore->exists()) {
abort(409); abort(409);
} }
if ($subscore->scoring_guide_id !== $guide->id) { // Make sure the subscore were updating belongs to the guide
abort(409);
}
$validateData = request()->validate([ $validateData = request()->validate([
'name' => ['required'], 'name' => ['required'],
'max_score' => ['required', 'integer'], 'max_score' => ['required', 'integer'],
@ -157,6 +160,24 @@ class ScoringGuideController extends Controller
return redirect('/admin/scoring/guides/'.$guide->id.'/edit')->with('success', 'Subscore updated'); return redirect('/admin/scoring/guides/'.$guide->id.'/edit')->with('success', 'Subscore updated');
} }
public function subscore_destroy(ScoringGuide $guide, SubscoreDefinition $subscore)
{
if (! Auth::user()->is_admin) {
abort(403);
}
if (! $guide->exists() || ! $subscore->exists()) {
abort(409);
}
if ($subscore->scoring_guide_id !== $guide->id) { // Make sure the subscore were updating belongs to the guide
abort(409);
}
$subscore->delete();
return redirect('/admin/scoring/guides/'.$guide->id.'/edit')->with('success', 'Subscore deleted');
}
public function reorder_display(Request $request) public function reorder_display(Request $request)
{ {

View File

@ -1,4 +1,4 @@
<x-modal-body> <x-modal-body class="relative">
<x-slot:title>Edit Subscore</x-slot:title> <x-slot:title>Edit Subscore</x-slot:title>
<x-table.table> <x-table.table>
<thead><tr> <thead><tr>
@ -29,4 +29,11 @@
</x-form.form> </x-form.form>
</x-table.body> </x-table.body>
</x-table.table> </x-table.table>
<div class="border-t relative pb-12">
<form method="POST" action="{{ route('admin.scoring.subscore_destroy', ['guide' => $guide->id, 'subscore' => $subscore->id]) }}">
@csrf
@method('DELETE')
<x-form.red-trash-button class="mt-3 absolute bottom-0 right-0" />
</form>
</div>
</x-modal-body> </x-modal-body>

View File

@ -52,7 +52,8 @@ Route::middleware(['auth', 'verified', CheckIfAdmin::class])->prefix('admin/')->
Route::get('/guides/{guide}/edit', 'edit')->name('admin.scoring.edit'); // Edit scoring guide Route::get('/guides/{guide}/edit', 'edit')->name('admin.scoring.edit'); // Edit scoring guide
Route::patch('/guides/{guide}/edit', 'update')->name('admin.scoring.update'); // Save changes to audition guide (rename) Route::patch('/guides/{guide}/edit', 'update')->name('admin.scoring.update'); // Save changes to audition guide (rename)
Route::post('/guides/{guide}/subscore', 'subscore_store')->name('admin.scoring.subscore_store'); // Save a new subscore Route::post('/guides/{guide}/subscore', 'subscore_store')->name('admin.scoring.subscore_store'); // Save a new subscore
Route::patch('/guides/{guide}/subscore/{subscore}', 'subscore_update')->name('admin.scoring.subscore_update'); // Save a new subscore Route::patch('/guides/{guide}/subscore/{subscore}', 'subscore_update')->name('admin.scoring.subscore_update'); // Modify a subscore
Route::delete('/guides/{guide}/subscore/{subscore}', 'subscore_destroy')->name('admin.scoring.subscore_destroy'); // Delete a subscore
Route::post('/reorder-display', 'reorder_display')->name('admin.scoring.reorder_display'); Route::post('/reorder-display', 'reorder_display')->name('admin.scoring.reorder_display');
Route::post('/reorder-tiebreak', 'reorder_tiebreak')->name('admin.scoring.reorder_tiebreak'); Route::post('/reorder-tiebreak', 'reorder_tiebreak')->name('admin.scoring.reorder_tiebreak');
Route::delete('/guides/{guide}', 'destroy')->name('admin.scoring.destroy'); // Delete a scoring guide Route::delete('/guides/{guide}', 'destroy')->name('admin.scoring.destroy'); // Delete a scoring guide