diff --git a/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminController.php b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminController.php
index 7a7f263..b5badc9 100644
--- a/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminController.php
+++ b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminController.php
@@ -14,9 +14,9 @@ class MeobdaNominationAdminController extends Controller implements NominationAd
if (request('newFilterParameters')) {
$newFilterData = request()->validate([
'school' => 'nullable|exists:schools,id',
- 'ensemble' => 'nullable|exists:nomination_ensembles,id',
'section' => 'nullable|string',
'newFilterParameters' => 'string',
+ 'split' => 'nullable|string',
]);
session()->put('nominationAdminFilters', $newFilterData);
$filterData = $newFilterData;
@@ -29,16 +29,30 @@ class MeobdaNominationAdminController extends Controller implements NominationAd
// Populate variables to complete the filter form
$schools = School::orderBy('name')->get();
$ensembles = NominationEnsemble::all();
+ $sections = [];
+ $splits = [];
+ foreach ($ensembles as $ensemble) {
+ // Populate sections for each ensemble
+ $sections[$ensemble->id.'---'.'all'] = $ensemble->name.' - ALL';
+ foreach ($ensemble->data['instruments'] as $instrument) {
+ $sections[$ensemble->id.'---'.$instrument['name']] = $ensemble->name.' - '.$instrument['name'];
+ }
+ // Populate splits for each ensemble
+ $splits[$ensemble->id.'---'.'all'] = $ensemble->name.' - ALL';
+ foreach ($ensemble->data['split_names'] as $splitName) {
+ $splits[$ensemble->id.'---'.$splitName] = $ensemble->name.' - '.$splitName;
+ }
+ }
+
+ // Get and filter nominations
$nominations = NominationEnsembleEntry::with('student.school');
if ($filterData['school'] ?? false) {
$nominations = $nominations->whereHas('student', function ($query) use ($filterData) {
$query->where('school_id', $filterData['school']);
});
}
- if ($filterData['ensemble'] ?? false) {
- $nominations = $nominations->where('nomination_ensemble_id', $filterData['ensemble']);
- }
+
if ($filterData['section'] ?? false) {
$sectionFilter = explode('---', $filterData['section']);
$nominations = $nominations->where('nomination_ensemble_id', $sectionFilter[0]);
@@ -47,17 +61,18 @@ class MeobdaNominationAdminController extends Controller implements NominationAd
}
}
- $nominations = $nominations->paginate(50);
- $sections = [];
- foreach ($ensembles as $ensemble) {
- $sections[$ensemble->id.'---'.'all'] = $ensemble->name.' - ALL';
- foreach ($ensemble->data['instruments'] as $instrument) {
- $sections[$ensemble->id.'---'.$instrument['name']] = $ensemble->name.' - '.$instrument['name'];
+ if ($filterData['split'] ?? false) {
+ $splitFilter = explode('---', $filterData['split']);
+ $nominations = $nominations->where('nomination_ensemble_id', $splitFilter[0]);
+ if ($splitFilter[1] != 'all') {
+ $nominations = $nominations->where('data->split', $splitFilter[1]);
}
}
+ $nominations = $nominations->paginate(50);
+
return view('nomination_ensembles.meobda.admin.nominations',
- compact('nominations', 'schools', 'filterData', 'ensembles', 'sections'));
+ compact('nominations', 'schools', 'filterData', 'ensembles', 'sections', 'splits'));
}
public function show(NominationEnsembleEntry $entry)
diff --git a/resources/views/nomination_ensembles/meobda/admin/nominations.blade.php b/resources/views/nomination_ensembles/meobda/admin/nominations.blade.php
index c933b49..08af986 100644
--- a/resources/views/nomination_ensembles/meobda/admin/nominations.blade.php
+++ b/resources/views/nomination_ensembles/meobda/admin/nominations.blade.php
@@ -18,17 +18,6 @@
@endforeach
-
- Ensemble
-
- @foreach($ensembles as $ensemble)
-
- @endforeach
-
-
Ensemble / Instrument
@@ -39,6 +28,16 @@
@endforeach
+
+ Split
+
+ @foreach ($splits as $value => $name)
+
+ @endforeach
+
+