diff --git a/app/Http/Controllers/ResultsPage.php b/app/Http/Controllers/ResultsPage.php index d6fdd2f..a081050 100644 --- a/app/Http/Controllers/ResultsPage.php +++ b/app/Http/Controllers/ResultsPage.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Enums\EntryFlags; use App\Models\Audition; use App\Models\Ensemble; use App\Models\Entry; @@ -10,6 +11,8 @@ use App\Services\AuditionService; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cache; +use function auditionSetting; + class ResultsPage extends Controller { protected $auditionService; @@ -53,24 +56,24 @@ class ResultsPage extends Controller return $seatList; }); - // $publishedAdvancementAuditions = $this->auditionService->getPublishedAdvancementAuditions(); - // $resultsAdvancementList = Cache::rememberForever('resultsAdvancementList', function () use ($publishedAdvancementAuditions) { - // $qualifierList = []; - // foreach ($publishedAdvancementAuditions as $audition) { - // $qualifierList[$audition->id] = Entry::with('flags', 'student.school') - // ->where('audition_id', $audition->id) - // ->where('for_advancement', true) - // ->get()->filter(function (Entry $entry) { - // return $entry->hasFlag('will_advance'); - // }) - // ->sortBy(function (Entry $entry) { - // return $entry->student->full_name(true); - // }); - // } - // - // return $qualifierList; - // }); + if (auditionSetting('advanceTo')) { + $publishedAdvancementAuditions = Audition::advancementPublished()->orderBy('score_order')->get(); + $resultsAdvancementList = Cache::rememberForever('resultsAdvancementList', + function () { + // get entries with a related flag of will_advance + $advancingEntries = Entry::forAdvancement()->with('student.school') + ->whereHas('flags', function ($query) { + $query->where('flag_name', EntryFlags::WILL_ADVANCE); + }) + ->get(); + $advancingEntries = $advancingEntries->sortBy(function ($entry) { + return $entry->student->full_name(true); + }); - return view('results.index', compact('publishedAuditions', 'resultsSeatList')); + return $advancingEntries->groupBy('audition_id'); + }); + } + + return view('results.index', compact('publishedAuditions', 'resultsSeatList', 'publishedAdvancementAuditions', 'resultsAdvancementList')); } } diff --git a/resources/views/results/index.blade.php b/resources/views/results/index.blade.php index 9623662..d198c16 100644 --- a/resources/views/results/index.blade.php +++ b/resources/views/results/index.blade.php @@ -14,20 +14,20 @@ @endforeach -{{-- @if( auditionSetting('advanceTo') )--}} -{{--
--}} -{{--

{{ auditionSetting('advanceTo') }} Qualifiers

--}} -{{-- @foreach($publishedAdvancementAuditions as $audition)--}} -{{-- --}} -{{-- @foreach($resultsAdvancementList[$audition->id] as $entry)--}} -{{-- --}} -{{-- @endforeach--}} -{{-- --}} -{{-- @endforeach--}} -{{--
--}} -{{-- @endif--}} + @if( auditionSetting('advanceTo') ) +
+

{{ auditionSetting('advanceTo') }} Qualifiers

+ @foreach($publishedAdvancementAuditions as $audition) + + @foreach($resultsAdvancementList[$audition->id] as $entry) + + @endforeach + + @endforeach +
+ @endif