Merge branch 'master' into pass_fail_prelims
* master: Fix issue where entry observer was taking too long during draw. No need to update doublers just to run the draw. Fix issue where directors could add students down to first grade if no nomination ensembles were defined.
This commit is contained in:
commit
3b6fbc16f1
|
|
@ -6,6 +6,7 @@ use App\Actions\Tabulation\DoublerSync;
|
||||||
use App\Models\Audition;
|
use App\Models\Audition;
|
||||||
use App\Models\Doubler;
|
use App\Models\Doubler;
|
||||||
use App\Models\Entry;
|
use App\Models\Entry;
|
||||||
|
use Illuminate\Support\Facades\Request;
|
||||||
|
|
||||||
use function auditionSetting;
|
use function auditionSetting;
|
||||||
|
|
||||||
|
|
@ -50,9 +51,11 @@ class EntryObserver
|
||||||
*/
|
*/
|
||||||
public function updated(Entry $entry): void
|
public function updated(Entry $entry): void
|
||||||
{
|
{
|
||||||
|
if (Request::route()->getName() !== 'admin.draw.store') { // Don't update doubler table during draw
|
||||||
$syncer = app(DoublerSync::class);
|
$syncer = app(DoublerSync::class);
|
||||||
// Update doubler table when an entry is updated
|
// Update doubler table when an entry is updated
|
||||||
$syncer();
|
$syncer();
|
||||||
|
}
|
||||||
|
|
||||||
// Log entry changes
|
// Log entry changes
|
||||||
$message = 'Updated Entry #'.$entry->id;
|
$message = 'Updated Entry #'.$entry->id;
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,10 @@
|
||||||
|
|
||||||
use App\Actions\Tabulation\EnterScore;
|
use App\Actions\Tabulation\EnterScore;
|
||||||
use App\Exceptions\ScoreEntryException;
|
use App\Exceptions\ScoreEntryException;
|
||||||
|
use App\Models\Audition;
|
||||||
use App\Models\AuditLogEntry;
|
use App\Models\AuditLogEntry;
|
||||||
use App\Models\Entry;
|
use App\Models\Entry;
|
||||||
|
use App\Models\NominationEnsemble;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Settings;
|
use App\Settings;
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
|
|
@ -58,3 +60,23 @@ function enterScore(User $user, Entry $entry, array $scores): \App\Models\ScoreS
|
||||||
|
|
||||||
return $scoreEntry($user, $entry, $scores);
|
return $scoreEntry($user, $entry, $scores);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function minimumStudentGrade()
|
||||||
|
{
|
||||||
|
$minAuditionGrade = Audition::min('minimum_grade');
|
||||||
|
if (auditionSetting('nomination_ensemble_rules') == 'disabled' || NominationEnsemble::count() == 0) {
|
||||||
|
return $minAuditionGrade;
|
||||||
|
}
|
||||||
|
|
||||||
|
return min(Audition::min('minimum_grade'), NominationEnsemble::min('minimum_grade'));
|
||||||
|
}
|
||||||
|
|
||||||
|
function maximumStudentGrade()
|
||||||
|
{
|
||||||
|
$maxAuditionGrade = Audition::max('maximum_grade');
|
||||||
|
if (auditionSetting('nomination_ensemble_rules') == 'disabled' || NominationEnsemble::count() == 0) {
|
||||||
|
return $maxAuditionGrade;
|
||||||
|
}
|
||||||
|
|
||||||
|
return max(Audition::max('maximum_grade'), NominationEnsemble::max('maximum_grade'));
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@
|
||||||
|
|
||||||
<x-form.select name="grade">
|
<x-form.select name="grade">
|
||||||
<x-slot:label>Grade</x-slot:label>
|
<x-slot:label>Grade</x-slot:label>
|
||||||
@php($n = min(Audition::min('minimum_grade'),NominationEnsemble::min('minimum_grade')))
|
@php($n = minimumStudentGrade())
|
||||||
@php($maxGrade = max(Audition::max('maximum_grade'), NominationEnsemble::max('maximum_grade')))
|
@php($maxGrade = maximumStudentGrade())
|
||||||
@while($n <= $maxGrade)
|
@while($n <= $maxGrade)
|
||||||
<option value="{{ $n }}">{{ $n }}</option>
|
<option value="{{ $n }}">{{ $n }}</option>
|
||||||
@php($n++);
|
@php($n++);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue