Begin Bonus Score Index

#20 Implement bonus scores
Setup controller and index method
Index view
Add menu item to set up menu to access
This commit is contained in:
Matt Young 2024-07-14 23:54:20 -05:00
parent 2ee0cf23cc
commit 192191c079
5 changed files with 57 additions and 0 deletions

View File

@ -0,0 +1,14 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class BonusScoreDefinitionController extends Controller
{
public function index()
{
return view('admin.bonus-scores.index');
}
}

View File

@ -0,0 +1,4 @@
<x-layout.app>
</x-layout.app>

View File

@ -26,6 +26,7 @@
<x-layout.navbar.menus.menu-item :href="route('admin.ensembles.index')">Ensembles</x-layout.navbar.menus.menu-item> <x-layout.navbar.menus.menu-item :href="route('admin.ensembles.index')">Ensembles</x-layout.navbar.menus.menu-item>
<x-layout.navbar.menus.menu-item :href="route('admin.ensembles.seatingLimits')">Seating Limits</x-layout.navbar.menus.menu-item> <x-layout.navbar.menus.menu-item :href="route('admin.ensembles.seatingLimits')">Seating Limits</x-layout.navbar.menus.menu-item>
<x-layout.navbar.menus.menu-item :href="route('admin.scoring.index')">Scoring</x-layout.navbar.menus.menu-item> <x-layout.navbar.menus.menu-item :href="route('admin.scoring.index')">Scoring</x-layout.navbar.menus.menu-item>
<x-layout.navbar.menus.menu-item :href="route('admin.bonus-scores.index')">Bonus Scores</x-layout.navbar.menus.menu-item>
<x-layout.navbar.menus.menu-item :href="route('admin.rooms.index')">Rooms</x-layout.navbar.menus.menu-item> <x-layout.navbar.menus.menu-item :href="route('admin.rooms.index')">Rooms</x-layout.navbar.menus.menu-item>
<x-layout.navbar.menus.menu-item :href="route('admin.rooms.judgingAssignment')">Judges</x-layout.navbar.menus.menu-item> <x-layout.navbar.menus.menu-item :href="route('admin.rooms.judgingAssignment')">Judges</x-layout.navbar.menus.menu-item>
<x-layout.navbar.menus.menu-item :href="route('admin.draw.index')">Run Draw</x-layout.navbar.menus.menu-item> <x-layout.navbar.menus.menu-item :href="route('admin.draw.index')">Run Draw</x-layout.navbar.menus.menu-item>

View File

@ -13,6 +13,16 @@ Route::middleware(['auth', 'verified', CheckIfAdmin::class])->prefix('admin/')->
Route::get('/settings', [\App\Http\Controllers\Admin\AuditionSettings::class, 'index'])->name('audition-settings'); Route::get('/settings', [\App\Http\Controllers\Admin\AuditionSettings::class, 'index'])->name('audition-settings');
Route::post('/settings', [\App\Http\Controllers\Admin\AuditionSettings::class, 'save'])->name('audition-settings-save'); Route::post('/settings', [\App\Http\Controllers\Admin\AuditionSettings::class, 'save'])->name('audition-settings-save');
// Admin Bonus Scores Routes
Route::prefix('bonus-scores')->controller(\App\Http\Controllers\Admin\BonusScoreDefinitionController::class)->group(function () {
Route::get('/', 'index')->name('admin.bonus-scores.index');
// Route::get('/create', 'create')->name('admin.bonus-scores.create');
// Route::post('/', 'store')->name('admin.bonus-scores.store');
// Route::get('/{bonusScoreDefinition}/edit', 'edit')->name('admin.bonus-scores.edit');
// Route::patch('/{bonusScoreDefinition}', 'update')->name('admin.bonus-scores.update');
// Route::delete('/{bonusScoreDefinition}', 'destroy')->name('admin.bonus-scores.destroy');
});
// Admin Ensemble Routes // Admin Ensemble Routes
Route::prefix('ensembles')->controller(\App\Http\Controllers\Admin\EnsembleController::class)->group(function () { Route::prefix('ensembles')->controller(\App\Http\Controllers\Admin\EnsembleController::class)->group(function () {
Route::get('/', 'index')->name('admin.ensembles.index'); Route::get('/', 'index')->name('admin.ensembles.index');

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Foundation\Testing\RefreshDatabase;
uses(RefreshDatabase::class);
it('denies access to guests and non administrators', function () {
$this->get(route('admin.bonus-scores.index'))
->assertRedirect(route('home'));
actAsNormal();
$this->get(route('admin.bonus-scores.index'))
->assertRedirect(route('dashboard'))
->assertSessionHas('error', 'You are not authorized to perform this action');
actAsTab();
$this->get(route('admin.bonus-scores.index'))
->assertRedirect(route('dashboard'))
->assertSessionHas('error', 'You are not authorized to perform this action');
});
it('grants access to an administrator', function () {
// Arrange
actAsAdmin();
// Act & Assert
$this->get(route('admin.bonus-scores.index'))
->assertOk()
->assertViewIs('admin.bonus-scores.index');
});