Advancement working.

This commit is contained in:
Matt Young 2025-06-30 00:38:42 -05:00
parent 24e1c3d95e
commit d0bd3f5092
2 changed files with 20 additions and 9 deletions

View File

@ -8,6 +8,7 @@ use App\Models\Ensemble;
use App\Models\Entry; use App\Models\Entry;
use App\Models\Seat; use App\Models\Seat;
use App\Services\AuditionService; use App\Services\AuditionService;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\View;
@ -28,6 +29,7 @@ class ResultsPage extends Controller
*/ */
public function __invoke(Request $request) public function __invoke(Request $request)
{ {
Model::preventLazyLoading(false);
$cacheKey = 'publicResultsPage'; $cacheKey = 'publicResultsPage';
if (Cache::has($cacheKey)) { if (Cache::has($cacheKey)) {

View File

@ -6,7 +6,7 @@ use App\Actions\Tabulation\CalculateAuditionScores;
use App\Actions\Tabulation\RankAuditionEntries; use App\Actions\Tabulation\RankAuditionEntries;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\Audition; use App\Models\Audition;
use App\Models\Entry; use App\Models\EntryFlag;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
@ -81,16 +81,24 @@ class AdvancementController extends Controller
public function setAuditionPassers(Request $request, Audition $audition) public function setAuditionPassers(Request $request, Audition $audition)
{ {
$passingEntries = $request->input('pass'); $passingEntries = $request->input('pass');
$audition->addFlag('advancement_published'); $audition->addFlag('advancement_published');
if (! is_null($passingEntries)) { if (! is_null($passingEntries)) {
$passingEntries = array_keys($passingEntries); $passEntries = collect(array_keys($passingEntries));
$entries = Entry::whereIn('id', $passingEntries)->get(); EntryFlag::insert(
foreach ($entries as $entry) { $passEntries
$entry->addFlag('will_advance'); ->map(fn ($entryId) => [
} 'entry_id' => $entryId,
'flag_name' => 'will_advance',
'created_at' => now(),
'updated_at' => now(),
])->toArray()
);
} }
Cache::forget('audition'.$audition->id.'advancement'); Cache::forget('audition'.$audition->id.'advancement');
Cache::forget('publicResultsPage'); Cache::forget('publicResultsPage');
Cache::forget('rank_advancement_'.$audition->id);
return redirect()->route('advancement.ranking', ['audition' => $audition->id])->with('success', return redirect()->route('advancement.ranking', ['audition' => $audition->id])->with('success',
'Passers have been set successfully'); 'Passers have been set successfully');
@ -99,9 +107,10 @@ class AdvancementController extends Controller
public function clearAuditionPassers(Request $request, Audition $audition) public function clearAuditionPassers(Request $request, Audition $audition)
{ {
$audition->removeFlag('advancement_published'); $audition->removeFlag('advancement_published');
foreach ($audition->entries as $entry) { $audition->entries
$entry->removeFlag('will_advance'); ->filter(fn ($entry) => $entry->hasFlag('will_advance'))
} ->each(fn ($entry) => $entry->removeFlag('will_advance'));
Cache::forget('audition'.$audition->id.'advancement'); Cache::forget('audition'.$audition->id.'advancement');
Cache::forget('publicResultsPage'); Cache::forget('publicResultsPage');