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

View File

@ -43,9 +43,14 @@ class AuditionService
$modeColumn = match ($mode) {
'seating' => 'for_seating',
'advancement' => 'for_advance',
'all' => null,
};
$audition->load('scoringGuide.subscores');
if ($mode == 'all') {
return $audition->scoringGuide->subscores->sortBy($sortColumn);
}
return $audition->scoringGuide->subscores->where($modeColumn, true)->sortBy($sortColumn);
});
}
@ -103,6 +108,7 @@ class AuditionService
'limit' => $limit->maximum_accepted,
];
}
return $lims;
});
@ -118,7 +124,7 @@ class AuditionService
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');
}
}