diff --git a/app/Actions/Fortify/CreateNewUser.php b/app/Actions/Fortify/CreateNewUser.php index b098ab2..23126a7 100644 --- a/app/Actions/Fortify/CreateNewUser.php +++ b/app/Actions/Fortify/CreateNewUser.php @@ -4,12 +4,15 @@ namespace App\Actions\Fortify; use A6digital\Image\DefaultProfileImage; use App\Models\User; +use App\Rules\ValidRegistrationCode; +use App\Settings; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\Rule; use Laravel\Fortify\Contracts\CreatesNewUsers; use function mb_substr; +use function sendMessage; class CreateNewUser implements CreatesNewUsers { @@ -22,7 +25,9 @@ class CreateNewUser implements CreatesNewUsers */ public function create(array $input): User { + Validator::make($input, [ + 'registration_code' => [new ValidRegistrationCode], 'first_name' => ['required', 'string', 'max:255'], 'last_name' => ['required', 'string', 'max:255'], 'judging_preference' => ['required', 'string', 'max:255'], diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index e9234c4..5b2c14b 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use function dd; use function redirect; class DashboardController extends Controller diff --git a/app/Http/Controllers/EntryController.php b/app/Http/Controllers/EntryController.php index 1c1d86f..cde34a7 100644 --- a/app/Http/Controllers/EntryController.php +++ b/app/Http/Controllers/EntryController.php @@ -17,7 +17,7 @@ class EntryController extends Controller { $entries = Auth::user()->entries()->with(['student','audition'])->get(); - $auditions = Audition::all(); + $auditions = Audition::deadlineNotPast(); $students = Auth::user()->students; return view('entries.index',['entries' => $entries, 'students' => $students, 'auditions' => $auditions]); diff --git a/app/Http/Middleware/LoadAuditionSettings.php b/app/Http/Middleware/LoadAuditionSettings.php new file mode 100644 index 0000000..f9c8213 --- /dev/null +++ b/app/Http/Middleware/LoadAuditionSettings.php @@ -0,0 +1,25 @@ +belongsTo(Event::class); } + + public static function deadlineNotPast() + { + return Audition::where('entry_deadline', '>=', now())->get(); + } } diff --git a/app/Rules/ValidRegistrationCode.php b/app/Rules/ValidRegistrationCode.php new file mode 100644 index 0000000..e9e6121 --- /dev/null +++ b/app/Rules/ValidRegistrationCode.php @@ -0,0 +1,23 @@ +withMiddleware(function (Middleware $middleware) { + $middleware->append(LoadAuditionSettings::class); $middleware->redirectUsersTo('/dashboard'); $middleware->redirectGuestsTo('/'); }) diff --git a/resources/views/auth/forgot-password.blade.php b/resources/views/auth/forgot-password.blade.php index 6fbcbde..9c72061 100644 --- a/resources/views/auth/forgot-password.blade.php +++ b/resources/views/auth/forgot-password.blade.php @@ -11,7 +11,7 @@
@csrf - + Send Password Reset diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index fd52197..900be42 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -4,8 +4,8 @@
@csrf - - + + Log In diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index 86c50c0..70ccce4 100644 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -1,20 +1,22 @@ +@php use App\Settings; @endphp - Create an Account + {{ Settings::get('auditionAbbreviation') }} - Create an Account
@csrf - - - - - - - + + + + + + + + Create Account
diff --git a/resources/views/auth/reset-password.blade.php b/resources/views/auth/reset-password.blade.php index d6fbb5a..1b00efc 100644 --- a/resources/views/auth/reset-password.blade.php +++ b/resources/views/auth/reset-password.blade.php @@ -4,9 +4,9 @@
@csrf - - - + + + Reset Password diff --git a/resources/views/components/form/field.blade.php b/resources/views/components/form/field.blade.php index bd7a6d0..458bfbc 100644 --- a/resources/views/components/form/field.blade.php +++ b/resources/views/components/form/field.blade.php @@ -38,4 +38,7 @@ @endif merge($inputAttributes) }}> + @error($name) +

{{ $message }}

+ @enderror
diff --git a/resources/views/components/form/select.blade.php b/resources/views/components/form/select.blade.php index 41c581d..f0dc2ab 100644 --- a/resources/views/components/form/select.blade.php +++ b/resources/views/components/form/select.blade.php @@ -23,7 +23,7 @@ 'for' => $name ]; $select_attribs = [ - 'class' => 'mt-2 block w-full rounded-md border-0 py-1.5 pl-3 pr-10 text-gray-900 ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-indigo-600 sm:text-sm sm:leading-6', + 'class' => 'block w-full rounded-md border-0 py-1.5 pl-3 pr-10 text-gray-900 ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-indigo-600 sm:text-sm sm:leading-6', 'id' => $name, 'name' => $name ] diff --git a/resources/views/dashboard/select_school.blade.php b/resources/views/dashboard/select_school.blade.php index 0adfeef..47a31b5 100644 --- a/resources/views/dashboard/select_school.blade.php +++ b/resources/views/dashboard/select_school.blade.php @@ -35,6 +35,13 @@ @endforeach + + + Create new school + My school isn't listed + + Create new school +
diff --git a/resources/views/entries/index.blade.php b/resources/views/entries/index.blade.php index 2454a99..35bb0c8 100644 --- a/resources/views/entries/index.blade.php +++ b/resources/views/entries/index.blade.php @@ -56,6 +56,7 @@ {{ $entry->student->full_name(true) }} {{ $entry->student->grade }} {{ $entry->audition->name }} +{{-- TODO block deletion of entries past the deadline--}}
@csrf diff --git a/resources/views/schools/create.blade.php b/resources/views/schools/create.blade.php index 361e593..db0669a 100644 --- a/resources/views/schools/create.blade.php +++ b/resources/views/schools/create.blade.php @@ -1,24 +1,56 @@ - Create School -
- - - - - - - - + + + New School + + + + + + + + + + + + +{{-- Create School--}} +{{--
--}} +{{-- --}} +{{-- School Information--}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} - -
+{{--
--}} + + +{{-- --}} + +{{-- School Information--}} + + +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} +{{-- --}} + +{{-- --}} +{{--
--}}
diff --git a/resources/views/students/index.blade.php b/resources/views/students/index.blade.php index 0441044..c665ffb 100644 --- a/resources/views/students/index.blade.php +++ b/resources/views/students/index.blade.php @@ -1,6 +1,6 @@ -@php use Illuminate\Support\Facades\Auth; @endphp +@php use App\Models\Audition;use Illuminate\Support\Facades\Auth; @endphp @push('scripts') -{{-- Code from https://codepen.io/ryangjchandler/pen/WNQQKeR--}} + {{-- Code from https://codepen.io/ryangjchandler/pen/WNQQKeR--}} @endpush @@ -11,10 +11,19 @@ Add Student - - - - {{-- TODO make grade a dropdown --}} + + + {{-- --}} + + + Grade + @php($n = Audition::min('minimum_grade')) + @php($maxGrade = Audition::max('maximum_grade')) + @while($n <= $maxGrade) + + @php($n++); + @endwhile + Save @@ -24,40 +33,41 @@ Student Listing
- - - - Name - Grade - Entries - - Edit - - - - - @foreach($students as $student) - - {{ $student->full_name(true) }} - {{ $student->grade }} - {{ $student->entries->count() }} - - @can('delete', $student) - - @csrf - @method('DELETE') - Delete - - | - @endcan - Edit - - - @endforeach - - + + + + Name + Grade + Entries + + Edit + + + + + @foreach($students as $student) + + {{ $student->full_name(true) }} + {{ $student->grade }} + {{ $student->entries->count() }} + + @if( $student->entries->count() > 0) +
+ @csrf + @method('DELETE') + Delete + +
+ | + @endif + Edit +
+ + @endforeach +
+
diff --git a/resources/views/test.blade.php b/resources/views/test.blade.php index b57098a..5fced4e 100644 --- a/resources/views/test.blade.php +++ b/resources/views/test.blade.php @@ -2,10 +2,9 @@ Test Page - @php( Settings::set('auditionName','Somewhere Band Directors Association')) - @php( Settings::set('auditionAbbreviation','SBDA')) + {{ Audition::max('maximum_grade') }} is the oldest grade used.
+ {{ Audition::min('minimum_grade') }} is the youngest grade. - {{ Settings::get('auditionName') }}
d diff --git a/routes/web.php b/routes/web.php index 6825572..eca2f82 100644 --- a/routes/web.php +++ b/routes/web.php @@ -21,7 +21,7 @@ Route::middleware(['auth','verified'])->group(function () { }); // Entry Related Routes -Route::middleware(['auth','verified'])->controller(EntryController::class)->group(function() { +Route::middleware(['auth','verified','can:create,App\Models\Entry'])->controller(EntryController::class)->group(function() { Route::get('/entries','index'); Route::get('/entries/create','create'); Route::post('/entries', 'store'); @@ -35,7 +35,7 @@ Route::middleware(['auth','verified'])->controller(UserController::class)->group }); // Student Related Routes -Route::middleware(['auth','verified'])->controller(StudentController::class)->group(function() { +Route::middleware(['auth','verified','can:create,App\Models\Student'])->controller(StudentController::class)->group(function() { Route::get('/students','index'); Route::post('students', 'store'); Route::get('/students/{student}/edit','edit');