Minimum and maximum grades on student creation and edit forms should include grades for nomination ensembles.

This commit is contained in:
Matt Young 2025-02-09 19:39:24 -06:00
parent ca06563b1c
commit c4818876b2
2 changed files with 14 additions and 10 deletions

View File

@ -7,6 +7,7 @@ use App\Models\Audition;
use App\Models\AuditLogEntry;
use App\Models\Entry;
use App\Models\Event;
use App\Models\NominationEnsemble;
use App\Models\School;
use App\Models\Student;
use Illuminate\Support\Facades\Auth;
@ -14,6 +15,8 @@ use Illuminate\Support\Facades\Auth;
use function abort;
use function auth;
use function compact;
use function max;
use function min;
use function request;
use function to_route;
use function view;
@ -54,8 +57,8 @@ class StudentController extends Controller
if (! Auth::user()->is_admin) {
abort(403);
}
$minGrade = Audition::min('minimum_grade');
$maxGrade = Audition::max('maximum_grade');
$minGrade = min(Audition::min('minimum_grade'), NominationEnsemble::min('minimum_grade'));
$maxGrade = max(Audition::max('maximum_grade'), NominationEnsemble::max('maximum_grade'));
$schools = School::orderBy('name')->get();
return view('admin.students.create', ['schools' => $schools, 'minGrade' => $minGrade, 'maxGrade' => $maxGrade]);
@ -105,8 +108,8 @@ class StudentController extends Controller
if (! Auth::user()->is_admin) {
abort(403);
}
$minGrade = Audition::min('minimum_grade');
$maxGrade = Audition::max('maximum_grade');
$minGrade = min(Audition::min('minimum_grade'), NominationEnsemble::min('minimum_grade'));
$maxGrade = max(Audition::max('maximum_grade'), NominationEnsemble::max('maximum_grade'));
$schools = School::orderBy('name')->get();
$student->loadCount('entries');
$entries = $student->entries;

View File

@ -1,4 +1,4 @@
@php use App\Models\Audition;use Illuminate\Support\Facades\Auth; @endphp
@php use App\Models\Audition;use App\Models\NominationEnsemble;use Illuminate\Support\Facades\Auth; @endphp
<x-layout.app>
<x-slot:page_title>Students</x-slot:page_title>
@ -8,13 +8,13 @@
<x-slot:section_name>Add Student</x-slot:section_name>
<x-form.form method="POST" action="{{ route('students.store') }}" class="mb-6 mt-3">
<x-form.body-grid columns="8" class="max-w-full">
<x-form.field name="first_name" label_text="First Name" colspan="3" autofocus />
<x-form.field name="first_name" label_text="First Name" colspan="3" autofocus/>
<x-form.field name="last_name" label_text="Last Name" colspan="3"/>
<x-form.select name="grade">
<x-slot:label>Grade</x-slot:label>
@php($n = Audition::min('minimum_grade'))
@php($maxGrade = Audition::max('maximum_grade'))
@php($n = min(Audition::min('minimum_grade'),NominationEnsemble::min('minimum_grade')))
@php($maxGrade = max(Audition::max('maximum_grade'), NominationEnsemble::max('maximum_grade')))
@while($n <= $maxGrade)
<option value="{{ $n }}">{{ $n }}</option>
@php($n++);
@ -54,7 +54,7 @@
</x-table.th>
</tr>
</thead>
<x-table.body >
<x-table.body>
@foreach($students as $student)
<tr>
<x-table.td first>{{ $student->full_name(true) }}</x-table.td>
@ -65,7 +65,8 @@
<x-table.td class="hidden md:table-cell">{{ $student->entries_count }}</x-table.td>
<x-table.td for_button>
@if( $student->entries_count === 0)
<form method="POST" action="{{ route('students.destroy',$student) }}" class="inline">
<form method="POST" action="{{ route('students.destroy',$student) }}"
class="inline">
@csrf
@method('DELETE')
<x-table.button