48 lines
1.5 KiB
PHP
48 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Tabulation;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Audition;
|
|
use App\Models\Entry;
|
|
use App\Models\ScoreSheet;
|
|
use App\Services\TabulationService;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Session;
|
|
use function compact;
|
|
use function dump;
|
|
use function redirect;
|
|
|
|
class TabulationController extends Controller
|
|
{
|
|
protected $tabulationService;
|
|
|
|
public function __construct(TabulationService $tabulationService)
|
|
{
|
|
$this->tabulationService = $tabulationService;
|
|
}
|
|
|
|
public function status()
|
|
{
|
|
// $auditions = Audition::with(['entries' => function($query) {
|
|
// $query->withCount('scoreSheets');
|
|
// },'room.judges'])->orderBy('score_order')->get();
|
|
$auditions = $this->tabulationService->getAuditionsWithStatus();
|
|
return view('tabulation.status',compact('auditions'));
|
|
}
|
|
|
|
public function auditionSeating(Audition $audition)
|
|
{
|
|
// $entries = $audition->entries()->with(['student','scoreSheets.audition.scoringGuide','audition.room.judges'])->get();
|
|
// $entries = $entries->sortByDesc(function ($entry) {
|
|
// return $entry->totalScore();
|
|
// });
|
|
// $entries = $audition->rankedEntries()->load('student.entries.audition','scoreSheets.audition.scoringGuide.subscores');
|
|
$entries = $this->tabulationService->auditionEntries($audition->id);
|
|
|
|
|
|
return view('tabulation.auditionSeating',compact('audition','entries'));
|
|
}
|
|
|
|
}
|