parent
ad4c2e80b6
commit
f0ad56e0d2
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Actions\Tabulation;
|
namespace App\Actions\Tabulation;
|
||||||
|
|
||||||
|
use App\Exceptions\AuditionAdminException;
|
||||||
use App\Models\Audition;
|
use App\Models\Audition;
|
||||||
use App\Models\Seat;
|
use App\Models\Seat;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
|
@ -15,6 +16,9 @@ class PublishSeats
|
||||||
|
|
||||||
public function __invoke(Audition $audition, array $seats): void
|
public function __invoke(Audition $audition, array $seats): void
|
||||||
{
|
{
|
||||||
|
if (count($seats) === 0) {
|
||||||
|
throw new AuditionAdminException('Cannot publish an audition with no seats.');
|
||||||
|
}
|
||||||
// Delete from the seats table where audition_id = $audition->id
|
// Delete from the seats table where audition_id = $audition->id
|
||||||
Seat::where('audition_id', $audition->id)->delete();
|
Seat::where('audition_id', $audition->id)->delete();
|
||||||
foreach ($seats as $seat) {
|
foreach ($seats as $seat) {
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ use App\Models\EntryFlag;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
|
||||||
|
use function is_null;
|
||||||
|
|
||||||
class AdvancementController extends Controller
|
class AdvancementController extends Controller
|
||||||
{
|
{
|
||||||
public function status()
|
public function status()
|
||||||
|
|
@ -80,7 +82,12 @@ class AdvancementController extends Controller
|
||||||
|
|
||||||
public function setAuditionPassers(Request $request, Audition $audition)
|
public function setAuditionPassers(Request $request, Audition $audition)
|
||||||
{
|
{
|
||||||
|
|
||||||
$passingEntries = $request->input('pass');
|
$passingEntries = $request->input('pass');
|
||||||
|
if (is_null($passingEntries) || count($passingEntries) < 1) {
|
||||||
|
return redirect()->route('advancement.ranking', ['audition' => $audition->id])->with('error',
|
||||||
|
'Cannot publish advancement if no entries advance');
|
||||||
|
}
|
||||||
|
|
||||||
$audition->addFlag('advancement_published');
|
$audition->addFlag('advancement_published');
|
||||||
if (! is_null($passingEntries)) {
|
if (! is_null($passingEntries)) {
|
||||||
|
|
|
||||||
|
|
@ -260,7 +260,11 @@ class SeatAuditionFormController extends Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
$publisher($audition, $proposal);
|
$publisher($audition, $proposal);
|
||||||
|
} catch (AuditionAdminException $e) {
|
||||||
|
return redirect()->route('seating.audition', [$audition])->with('error', $e->getMessage());
|
||||||
|
}
|
||||||
session()->forget('proposedSeatingArray-'.$audition->id);
|
session()->forget('proposedSeatingArray-'.$audition->id);
|
||||||
|
|
||||||
return redirect()->route('seating.audition', [$audition]);
|
return redirect()->route('seating.audition', [$audition]);
|
||||||
|
|
|
||||||
|
|
@ -216,6 +216,7 @@
|
||||||
<x-form.form method="POST" action="{{ route('seating.audition.clearDraft',[$audition]) }}">
|
<x-form.form method="POST" action="{{ route('seating.audition.clearDraft',[$audition]) }}">
|
||||||
<x-form.button class="mb-3">Clear Draft</x-form.button>
|
<x-form.button class="mb-3">Clear Draft</x-form.button>
|
||||||
</x-form.form>
|
</x-form.form>
|
||||||
|
{{-- TODO Hide the publish button if there are no seats --}}
|
||||||
<x-form.form method="POST"
|
<x-form.form method="POST"
|
||||||
action="{{ route('seating.audition.publishSeats',[$audition]) }}">
|
action="{{ route('seating.audition.publishSeats',[$audition]) }}">
|
||||||
<x-form.button class="mb-3">Publish</x-form.button>
|
<x-form.button class="mb-3">Publish</x-form.button>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue