Fix issue where scores could not be recorded with advancement only subscores

This commit is contained in:
Matt Young 2024-11-06 10:10:55 -06:00
parent c9fbb71eb9
commit 0b5a5ba722
2 changed files with 11 additions and 6 deletions

View File

@ -83,11 +83,10 @@ class JudgingController extends Controller
// Validate form data // Validate form data
try { try {
$subscores = $this->auditionService->getSubscores($entry->audition); $subscores = $this->auditionService->getSubscores($entry->audition, 'all');
} catch (AuditionServiceException $e) { } catch (AuditionServiceException $e) {
return redirect()->back()->with('error', 'Unable to get subscores - '.$e->getMessage()); return redirect()->back()->with('error', 'Unable to get subscores - '.$e->getMessage());
} }
$validationChecks = []; $validationChecks = [];
foreach ($subscores as $subscore) { foreach ($subscores as $subscore) {
$validationChecks['score'.'.'.$subscore->id] = 'required|integer|max:'.$subscore->max_score; $validationChecks['score'.'.'.$subscore->id] = 'required|integer|max:'.$subscore->max_score;
@ -122,7 +121,7 @@ class JudgingController extends Controller
// Validate form data // Validate form data
try { try {
$subscores = $this->auditionService->getSubscores($entry->audition); $subscores = $this->auditionService->getSubscores($entry->audition, 'all');
} catch (AuditionServiceException $e) { } catch (AuditionServiceException $e) {
return redirect()->back()->with('error', 'Error getting subscores - '.$e->getMessage()); return redirect()->back()->with('error', 'Error getting subscores - '.$e->getMessage());
} }

View File

@ -43,9 +43,14 @@ class AuditionService
$modeColumn = match ($mode) { $modeColumn = match ($mode) {
'seating' => 'for_seating', 'seating' => 'for_seating',
'advancement' => 'for_advance', 'advancement' => 'for_advance',
'all' => null,
}; };
$audition->load('scoringGuide.subscores'); $audition->load('scoringGuide.subscores');
if ($mode == 'all') {
return $audition->scoringGuide->subscores->sortBy($sortColumn);
}
return $audition->scoringGuide->subscores->where($modeColumn, true)->sortBy($sortColumn); return $audition->scoringGuide->subscores->where($modeColumn, true)->sortBy($sortColumn);
}); });
} }
@ -100,9 +105,10 @@ class AuditionService
foreach ($limits as $limit) { foreach ($limits as $limit) {
$lims[$limit->audition_id][$limit->ensemble_id] = [ $lims[$limit->audition_id][$limit->ensemble_id] = [
'ensemble' => $ensembles->find($limit->ensemble_id), 'ensemble' => $ensembles->find($limit->ensemble_id),
'limit' =>$limit->maximum_accepted, 'limit' => $limit->maximum_accepted,
]; ];
} }
return $lims; return $lims;
}); });
@ -118,7 +124,7 @@ class AuditionService
protected function validateMode($mode) protected function validateMode($mode)
{ {
if ($mode !== 'seating' && $mode !== 'advancement') { if ($mode !== 'seating' && $mode !== 'advancement' && $mode !== 'all') {
throw new AuditionServiceException('Invalid mode requested. Mode must be seating or advancement'); throw new AuditionServiceException('Invalid mode requested. Mode must be seating or advancement');
} }
} }