diff --git a/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminController.php b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminController.php index e6a7f6a..6738faa 100644 --- a/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminController.php +++ b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminController.php @@ -92,7 +92,40 @@ class MeobdaNominationAdminController extends Controller implements NominationAd public function create() { - // TODO: Implement create() method. + $target_ensemble = null; + $instrumentation = null; + $students = null; + if (request()->get('ensemble')) { + $validData = request()->validate([ + 'ensemble' => 'nullable|exists:nomination_ensembles,id', + ]); + $target_ensemble = NominationEnsemble::find($validData['ensemble']); + + // Get viable students for entering + $students = Student::where('grade', '<=', $target_ensemble->maximum_grade) + ->where('grade', '>=', $target_ensemble->minimum_grade) + ->with('school') + ->join('schools', 'schools.id', '=', 'students.school_id') + ->orderBy('schools.name', 'asc') + ->orderBy('students.last_name', 'asc') + ->orderBy('students.first_name', 'asc') + ->get(['students.*']); + + // Remove students already nominated + $nominated_student_ids = NominationEnsembleEntry::where('nomination_ensemble_id', + $target_ensemble->id)->pluck('student_id')->all(); + + $students = $students->reject(function ($student) use ($nominated_student_ids) { + return in_array($student->id, $nominated_student_ids); + }); + + // Get current instrumentation of target ensemble + $instrumentation = $this->get_ensemble_instrumentation($target_ensemble); + } + $ensembles = NominationEnsemble::all(); + + return view('nomination_ensembles.meobda.admin.nomination-create', + compact('ensembles', 'target_ensemble', 'students', 'instrumentation')); } public function store() diff --git a/resources/views/nomination_ensembles/meobda/admin/nomination-create-choose_ensemble.blade.php b/resources/views/nomination_ensembles/meobda/admin/nomination-create-choose_ensemble.blade.php new file mode 100644 index 0000000..6db2aa2 --- /dev/null +++ b/resources/views/nomination_ensembles/meobda/admin/nomination-create-choose_ensemble.blade.php @@ -0,0 +1,9 @@ + + Choose Ensemble +
+ @foreach($ensembles as $ensemble) + {{ $ensemble->name }} + @endforeach +
+
diff --git a/resources/views/nomination_ensembles/meobda/admin/nomination-create.blade.php b/resources/views/nomination_ensembles/meobda/admin/nomination-create.blade.php new file mode 100644 index 0000000..8ba6d6f --- /dev/null +++ b/resources/views/nomination_ensembles/meobda/admin/nomination-create.blade.php @@ -0,0 +1,57 @@ + + @if(!$target_ensemble) + @include('nomination_ensembles.meobda.admin.nomination-create-choose_ensemble') + @else + + New Nomination - {{ $target_ensemble->name }} + + + Student + @foreach($students as $student) + + @endforeach + + + Instrument + @foreach($target_ensemble->data['instruments'] as $instrument) + + @endforeach + + + Split + + @foreach($target_ensemble->data['split_names'] as $split) + + @endforeach + + + + + + +{{-- Display current instrumentation--}} + + Current Instrumentation (before any changes) + + + + + @foreach($target_ensemble->data['split_names'] as $split) + {{$split}} + @endforeach + + + + @foreach($target_ensemble->data['instruments'] as $instrument) + + {{$instrument['name']}} + @foreach($target_ensemble->data['split_names'] as $split) + {{ $instrumentation[$split][$instrument['name']] }} + @endforeach + + @endforeach + + + + @endif + diff --git a/resources/views/nomination_ensembles/meobda/admin/nominations.blade.php b/resources/views/nomination_ensembles/meobda/admin/nominations.blade.php index 7795e02..4d61677 100644 --- a/resources/views/nomination_ensembles/meobda/admin/nominations.blade.php +++ b/resources/views/nomination_ensembles/meobda/admin/nominations.blade.php @@ -48,6 +48,8 @@ + Add Nomination +
{{ $nominations->onEachSide(3)->links() }} diff --git a/routes/nominationEnsemble.php b/routes/nominationEnsemble.php index c77d1fd..53fd228 100644 --- a/routes/nominationEnsemble.php +++ b/routes/nominationEnsemble.php @@ -21,6 +21,7 @@ Route::middleware(['auth', 'verified', CheckIfAdmin::class])->prefix('nomination Route::get('/', 'index')->name('nomination.admin.index'); Route::get('/{nominationEnsembleEntry}/edit', 'edit')->name('nomination.admin.edit'); Route::patch('/{nominationEnsembleEntry}', 'update')->name('nomination.admin.update'); + Route::get('/create', 'create')->name('nomination.admin.create'); }); Route::prefix('seating/')->controller(NominationSeatingController::class)->group(function () {