Option for split ensembles added to MEOBDA nomination rules

This commit is contained in:
Matt Young 2025-02-13 11:01:06 -06:00
parent 7eff16289f
commit ac5c4cb53b
2 changed files with 13 additions and 0 deletions

View File

@ -36,6 +36,7 @@ class MeobdaNominationEnsembleController extends Controller implements Nominatio
'max_grade' => 'required|numeric|gte:min_grade', 'max_grade' => 'required|numeric|gte:min_grade',
'max_nominations' => 'required|numeric|min:1', 'max_nominations' => 'required|numeric|min:1',
'instrument_list' => 'required|string', 'instrument_list' => 'required|string',
'split_names' => 'nullable|string',
], [ ], [
'maximum_grade.gte' => 'The maximum grade must be greater than the minimum grade.', 'maximum_grade.gte' => 'The maximum grade must be greater than the minimum grade.',
'rounding_direction.in' => 'The rounding direction must be either "up" or "down".', 'rounding_direction.in' => 'The rounding direction must be either "up" or "down".',
@ -53,6 +54,7 @@ class MeobdaNominationEnsembleController extends Controller implements Nominatio
'max' => $max, 'max' => $max,
]; ];
} }
$split_names = explode(',', $validated['split_names']);
$ensemble = new NominationEnsemble(); $ensemble = new NominationEnsemble();
$ensemble->name = $validated['ensemble_name']; $ensemble->name = $validated['ensemble_name'];
@ -62,6 +64,7 @@ class MeobdaNominationEnsembleController extends Controller implements Nominatio
$data = []; $data = [];
$data['max_nominations'] = $validated['max_nominations']; $data['max_nominations'] = $validated['max_nominations'];
$data['instruments'] = $instruments; $data['instruments'] = $instruments;
$data['split_names'] = $split_names;
$ensemble->data = $data; $ensemble->data = $data;
$ensemble->save(); $ensemble->save();
@ -86,6 +89,7 @@ class MeobdaNominationEnsembleController extends Controller implements Nominatio
'max_grade' => 'required|numeric|gte:min_grade', 'max_grade' => 'required|numeric|gte:min_grade',
'max_nominations' => 'required|numeric|min:1', 'max_nominations' => 'required|numeric|min:1',
'instrument_list' => 'required|string', 'instrument_list' => 'required|string',
'split_names' => 'nullable|string',
], [ ], [
'maximum_grade.gte' => 'The maximum grade must be greater than the minimum grade.', 'maximum_grade.gte' => 'The maximum grade must be greater than the minimum grade.',
'rounding_direction.in' => 'The rounding direction must be either "up" or "down".', 'rounding_direction.in' => 'The rounding direction must be either "up" or "down".',
@ -103,6 +107,7 @@ class MeobdaNominationEnsembleController extends Controller implements Nominatio
'max' => $max, 'max' => $max,
]; ];
} }
$split_names = explode(',', $validated['split_names']);
$ensemble->name = $validated['ensemble_name']; $ensemble->name = $validated['ensemble_name'];
$ensemble->entry_deadline = $validated['entry_deadline']; $ensemble->entry_deadline = $validated['entry_deadline'];
@ -111,6 +116,7 @@ class MeobdaNominationEnsembleController extends Controller implements Nominatio
$data = []; $data = [];
$data['max_nominations'] = $validated['max_nominations']; $data['max_nominations'] = $validated['max_nominations'];
$data['instruments'] = $instruments; $data['instruments'] = $instruments;
$data['split_names'] = $split_names;
$ensemble->data = $data; $ensemble->data = $data;
$ensemble->save(); $ensemble->save();

View File

@ -12,6 +12,7 @@
<x-form.field name="max_grade" label_text="Maximum Grade" type="number" colspan="2"/> <x-form.field name="max_grade" label_text="Maximum Grade" type="number" colspan="2"/>
<x-form.field name="max_nominations" label_text="Maximum Nominations per School" type="number" <x-form.field name="max_nominations" label_text="Maximum Nominations per School" type="number"
colspan="3"/> colspan="3"/>
<x-form.field name="split_names" label_text="Split Names (comma separated, leave blank for one ensemble)" colspan="6" />
<x-form.textarea name="instrument_list" colspan="9"> <x-form.textarea name="instrument_list" colspan="9">
<x-slot:label>Instrument List (One per line. Add :x to set a limit per school)</x-slot:label> <x-slot:label>Instrument List (One per line. Add :x to set a limit per school)</x-slot:label>
</x-form.textarea> </x-form.textarea>
@ -56,6 +57,12 @@
type="number" colspan="3" value="{{ $ensemble->data['max_nominations'] }}" type="number" colspan="3" value="{{ $ensemble->data['max_nominations'] }}"
x-bind:readonly="!editable"/> x-bind:readonly="!editable"/>
<x-form.field name="split_names" label_text="Split Names (comma separated, leave blank for one ensemble)"
colspan="6"
value="{{ implode(',',$ensemble->data['split_names'])}}"
x-bind:readonly="!editable"/>
<x-form.textarea name="instrument_list" colspan="9" x-bind:readonly="!editable"> <x-form.textarea name="instrument_list" colspan="9" x-bind:readonly="!editable">
<x-slot:label>Instrument List (One per line. Add :x to set a limit per school)</x-slot:label> <x-slot:label>Instrument List (One per line. Add :x to set a limit per school)</x-slot:label>