Scobda nomination ensembles #106

Merged
okorpheus merged 25 commits from scobda_first_year into master 2025-02-12 21:51:10 +00:00
2 changed files with 35 additions and 3 deletions
Showing only changes of commit ca06563b1c - Show all commits

View File

@ -6,6 +6,8 @@ use App\Http\Controllers\Controller;
use App\Models\NominationEnsemble; use App\Models\NominationEnsemble;
use App\Models\NominationEnsembleEntry; use App\Models\NominationEnsembleEntry;
use function dd;
class ScobdaNominationSeatingController extends Controller implements NominationSeatingController class ScobdaNominationSeatingController extends Controller implements NominationSeatingController
{ {
public function index() public function index()
@ -19,8 +21,15 @@ class ScobdaNominationSeatingController extends Controller implements Nomination
public function show(NominationEnsemble $ensemble) public function show(NominationEnsemble $ensemble)
{ {
$ensembles = NominationEnsemble::all(); $ensembles = NominationEnsemble::all();
$acceptedNominations = NominationEnsembleEntry::where('nomination_ensemble_id', $ensemble->id)
->where('data->accepted', true)
->orderByRaw('CAST(data->"$.rank" AS UNSIGNED)')
->get();
$acceptedNominations = $acceptedNominations->groupBy(function ($item) {
return $item->data['instrument'];
});
return view('nomination_ensembles.scobda.admin.seating.index', compact('ensembles', 'ensemble')); return view('nomination_ensembles.scobda.admin.seating.index', compact('ensembles', 'ensemble', 'acceptedNominations'));
} }
@ -56,6 +65,12 @@ class ScobdaNominationSeatingController extends Controller implements Nomination
} }
} }
foreach ($acceptedNominations as $nomination) {
$data = $nomination->data;
$data['accepted'] = true;
$nomination->update(['data' => $data]);
}
dd($acceptedNominations); dd($acceptedNominations);
} }
} }

View File

@ -23,12 +23,29 @@
<x-card.heading> <x-card.heading>
{{ $ensemble->name }} {{ $ensemble->name }}
<x-slot:right_side> <x-slot:right_side>
<x-form.form method="POST" action="{{ route('nomination.admin.seating.seat',[$ensemble]) }}"> <x-form.form method="POST"
action="{{ route('nomination.admin.seating.seat',[$ensemble]) }}">
<x-form.button>Seat Ensemble</x-form.button> <x-form.button>Seat Ensemble</x-form.button>
</x-form.form> </x-form.form>
</x-slot:right_side> </x-slot:right_side>
</x-card.heading> </x-card.heading>
<x-table.table>
@foreach($ensemble->data['instruments'] as $instrument)
@php($seatOn = 1)
@continue(! $acceptedNominations->has($instrument))
<tr>
<x-table.th colspan="3" class="border-t-2 border-b-2">{{ $instrument }}</x-table.th>
</tr>
@foreach($acceptedNominations[$instrument] as $nom)
<tr>
<x-table.td>{{ $seatOn }}</x-table.td>
<x-table.td>{{ $nom->student->full_name() }}</x-table.td>
<x-table.td>{{ $nom->student->school->name }}</x-table.td>
</tr>
@php($seatOn++)
@endforeach
@endforeach
</x-table.table>
</x-card.card> </x-card.card>
@endif @endif
</div> </div>