From 554f1837e14eb8b9e25ccf22065bf10085f62ac0 Mon Sep 17 00:00:00 2001
From: Matt Young
Date: Fri, 28 Mar 2025 12:20:33 -0500
Subject: [PATCH 1/3] Nominations ensembles - allow for utility Controller
---
.../MeobdaNominationAdminUtilitiesController.php | 13 +++++++++++++
.../NominationAdminUtilitiesController.php | 8 ++++++++
.../ScobdaNominationAdminUtilitiesController.php | 13 +++++++++++++
app/Providers/NominationEnsembleServiceProvider.php | 5 +++++
routes/nominationEnsemble.php | 2 ++
5 files changed, 41 insertions(+)
create mode 100644 app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php
create mode 100644 app/Http/Controllers/NominationEnsembles/NominationAdminUtilitiesController.php
create mode 100644 app/Http/Controllers/NominationEnsembles/ScobdaNominationAdminUtilitiesController.php
diff --git a/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php
new file mode 100644
index 0000000..e5b7308
--- /dev/null
+++ b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php
@@ -0,0 +1,13 @@
+app->bind(NominationAdminController::class, ScobdaNominationAdminController::class);
$this->app->bind(NominationSeatingController::class, ScobdaNominationSeatingController::class);
$this->app->bind(NominationExportController::class, ScobdaNominationExportController::class);
+ $this->app->bind(NominationAdminUtilitiesController::class, ScobdaNominationAdminUtilitiesController::class);
}
if (auditionSetting('nomination_ensemble_rules') === 'meobda') {
@@ -49,6 +53,7 @@ class NominationEnsembleServiceProvider extends ServiceProvider
$this->app->bind(NominationAdminController::class, MeobdaNominationAdminController::class);
$this->app->bind(NominationSeatingController::class, MeobdaNominationSeatingController::class);
$this->app->bind(NominationExportController::class, MeobdaNominationExportController::class);
+ $this->app->bind(NominationAdminUtilitiesController::class, MeobdaNominationAdminUtilitiesController::class);
}
}
}
diff --git a/routes/nominationEnsemble.php b/routes/nominationEnsemble.php
index 45a6e51..d64e2d2 100644
--- a/routes/nominationEnsemble.php
+++ b/routes/nominationEnsemble.php
@@ -1,6 +1,7 @@
prefix('nomination/admin/')->group(function () {
+ Route::any('/utilities/{action}', NominationAdminUtilitiesController::class);
Route::get('export', NominationExportController::class)->name('nomination.admin.export');
Route::prefix('ensemble/')->controller(NominationEnsembleController::class)->group(function () {
Route::get('/', 'index')->name('nomination.admin.ensemble.index');
--
2.39.5
From e359ada0b05c8164c3b31f539e890e2ae50fd0cc Mon Sep 17 00:00:00 2001
From: Matt Young
Date: Fri, 28 Mar 2025 12:25:03 -0500
Subject: [PATCH 2/3] Nominations ensembles - allow for utility Controller
---
.../MeobdaNominationAdminUtilitiesController.php | 2 +-
.../NominationEnsembles/NominationAdminUtilitiesController.php | 2 +-
.../ScobdaNominationAdminUtilitiesController.php | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php
index e5b7308..9a8a02e 100644
--- a/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php
+++ b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php
@@ -6,7 +6,7 @@ use App\Http\Controllers\Controller;
class MeobdaNominationAdminUtilitiesController extends Controller implements NominationAdminUtilitiesController
{
- public function __invoke()
+ public function __invoke(string $action)
{
// TODO: Implement __invoke() method.
}
diff --git a/app/Http/Controllers/NominationEnsembles/NominationAdminUtilitiesController.php b/app/Http/Controllers/NominationEnsembles/NominationAdminUtilitiesController.php
index be8209b..a454d40 100644
--- a/app/Http/Controllers/NominationEnsembles/NominationAdminUtilitiesController.php
+++ b/app/Http/Controllers/NominationEnsembles/NominationAdminUtilitiesController.php
@@ -4,5 +4,5 @@ namespace App\Http\Controllers\NominationEnsembles;
interface NominationAdminUtilitiesController
{
- public function __invoke();
+ public function __invoke(string $action);
}
diff --git a/app/Http/Controllers/NominationEnsembles/ScobdaNominationAdminUtilitiesController.php b/app/Http/Controllers/NominationEnsembles/ScobdaNominationAdminUtilitiesController.php
index 5e9d3f4..de9e3e8 100644
--- a/app/Http/Controllers/NominationEnsembles/ScobdaNominationAdminUtilitiesController.php
+++ b/app/Http/Controllers/NominationEnsembles/ScobdaNominationAdminUtilitiesController.php
@@ -6,7 +6,7 @@ use App\Http\Controllers\Controller;
class ScobdaNominationAdminUtilitiesController extends Controller implements NominationAdminUtilitiesController
{
- public function __invoke()
+ public function __invoke(string $action)
{
// TODO: Implement __invoke() method.
}
--
2.39.5
From 9db864a9098a4087ed436f150d4b0d16b94572ed Mon Sep 17 00:00:00 2001
From: Matt Young
Date: Fri, 28 Mar 2025 14:18:39 -0500
Subject: [PATCH 3/3] Nominations ensembles - print stand name tags for MEOBDA
---
...obdaNominationAdminUtilitiesController.php | 70 ++++++++++++++++++-
.../meobda/admin/seating.blade.php | 5 ++
routes/nominationEnsemble.php | 3 +-
3 files changed, 76 insertions(+), 2 deletions(-)
diff --git a/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php
index 9a8a02e..7afda35 100644
--- a/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php
+++ b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php
@@ -3,11 +3,79 @@
namespace App\Http\Controllers\NominationEnsembles;
use App\Http\Controllers\Controller;
+use App\Models\NominationEnsembleEntry;
+use Codedge\Fpdf\Fpdf\Fpdf;
class MeobdaNominationAdminUtilitiesController extends Controller implements NominationAdminUtilitiesController
{
public function __invoke(string $action)
{
- // TODO: Implement __invoke() method.
+ match ($action) {
+ 'name_tags' => $this->printNameTags(),
+ default => $this->invalidAction(),
+ };
+ }
+
+ private function printNameTags()
+ {
+ $pdf = new Fpdf('P', 'in', 'letter');
+ $pdf->SetFont('Arial', 'B', 36);
+
+ $nominations = NominationEnsembleEntry::with('ensemble')
+ ->with('student.school')
+ ->orderBy('nomination_ensemble_id')
+ ->orderBy('data->split')
+ ->orderBy('data->instrument')
+ ->orderByRaw('CAST(data->"$.seat" AS UNSIGNED)')
+ ->get();
+
+ // echo '| Ensemble | Split | Instrument | Seat | Name | School |
';
+ // foreach ($nominations as $nomination) {
+ // if (! isset($nomination->data['split'])) {
+ // $temp = $nomination->data;
+ // $temp['split'] = '---';
+ // $nomination->data = $temp;
+ // }
+ // if (! isset($nomination->data['seat'])) {
+ // $temp = $nomination->data;
+ // $temp['seat'] = '---';
+ // $nomination->data = $temp;
+ // }
+ // echo '';
+ // echo '| '.$nomination->ensemble->name.' | ';
+ // echo ''.$nomination->data['split'] ?? 'none'.' | ';
+ // echo ''.$nomination->data['instrument'].' | ';
+ // echo ''.$nomination->data['seat'].' | ';
+ // echo ''.$nomination->student->full_name().' | ';
+ // echo ''.$nomination->student->school->name.' | ';
+ // echo '
';
+ // }
+ // echo '
';
+
+ foreach ($nominations as $nomination) {
+ if (! isset($nomination->data['split'])) {
+ $temp = $nomination->data;
+ $temp['split'] = '---';
+ $nomination->data = $temp;
+ }
+ if (! isset($nomination->data['seat'])) {
+ $temp = $nomination->data;
+ $temp['seat'] = '---';
+ $nomination->data = $temp;
+ }
+ $pdf->AddPage();
+ $pdf->SetY('6');
+ $pdf->Cell(0, .8, $nomination->student->full_name(), 0, 1, 'C');
+ $pdf->Cell(0, .8, $nomination->student->school->name, 0, 1, 'C');
+ $pdf->Cell(0, .8, $nomination->data['split'], 0, 1, 'C');
+ $pdf->Cell(0, .8, $nomination->data['instrument'].' - '.$nomination->data['seat'], 0, 1, 'C');
+
+ }
+ $pdf->Output('D', 'StandNameTags.pdf');
+ }
+
+ private function invalidAction()
+ {
+ return redirect()->back()->with('error', 'Invalid Action');
}
}
diff --git a/resources/views/nomination_ensembles/meobda/admin/seating.blade.php b/resources/views/nomination_ensembles/meobda/admin/seating.blade.php
index 49b4222..0655ecd 100644
--- a/resources/views/nomination_ensembles/meobda/admin/seating.blade.php
+++ b/resources/views/nomination_ensembles/meobda/admin/seating.blade.php
@@ -19,6 +19,11 @@
Export Nominations
+
+
+ Print Stand Name Tags
+
+
diff --git a/routes/nominationEnsemble.php b/routes/nominationEnsemble.php
index d64e2d2..5984f94 100644
--- a/routes/nominationEnsemble.php
+++ b/routes/nominationEnsemble.php
@@ -10,7 +10,8 @@ use App\Http\Middleware\CheckIfAdmin;
use Illuminate\Support\Facades\Route;
Route::middleware(['auth', 'verified', CheckIfAdmin::class])->prefix('nomination/admin/')->group(function () {
- Route::any('/utilities/{action}', NominationAdminUtilitiesController::class);
+ Route::match(['get', 'post'], '/utilities/{action}',
+ NominationAdminUtilitiesController::class)->name('nomination.admin.utilities');
Route::get('export', NominationExportController::class)->name('nomination.admin.export');
Route::prefix('ensemble/')->controller(NominationEnsembleController::class)->group(function () {
Route::get('/', 'index')->name('nomination.admin.ensemble.index');
--
2.39.5