From 86f715f086185e9ec6e0e73c454c2592f2972f8a Mon Sep 17 00:00:00 2001 From: Matt Young Date: Wed, 11 Jun 2025 19:55:14 -0500 Subject: [PATCH] Add logging to EnterScore action. --- app/Actions/Tabulation/EnterScore.php | 22 ++++++++++++++++++++++ app/Models/AuditLogEntry.php | 3 ++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/Actions/Tabulation/EnterScore.php b/app/Actions/Tabulation/EnterScore.php index 84d7a24..9745e39 100644 --- a/app/Actions/Tabulation/EnterScore.php +++ b/app/Actions/Tabulation/EnterScore.php @@ -7,11 +7,14 @@ namespace App\Actions\Tabulation; use App\Exceptions\ScoreEntryException; +use App\Models\AuditLogEntry; use App\Models\Entry; use App\Models\ScoreSheet; use App\Models\User; use Illuminate\Support\Facades\DB; +use function auth; + class EnterScore { /** @@ -115,6 +118,25 @@ class EnterScore ]); } + // Log the score entry + $log_message = 'Entered Score for entry id '.$entry->id.'.
'; + $log_message .= 'Judge: '.$user->full_name().'
'; + foreach ($scoreSheet->subscores as $subscore) { + $log_message .= $subscore['subscore_name'].': '.$subscore['score'].'
'; + } + $log_message .= 'Total: '.$scoreSheet->sheet_total; + AuditLogEntry::create([ + 'user' => auth()->user()->email ?? 'no user', + 'ip_address' => request()->ip(), + 'message' => $log_message, + 'affected' => [ + 'entries' => [$entry->id], + 'users' => [$user->id], + 'auditions' => [$entry->audition_id], + 'students' => [$entry->student_id], + ], + ]); + return $scoreSheet; } } diff --git a/app/Models/AuditLogEntry.php b/app/Models/AuditLogEntry.php index 205fd5b..8208348 100644 --- a/app/Models/AuditLogEntry.php +++ b/app/Models/AuditLogEntry.php @@ -2,6 +2,7 @@ namespace App\Models; +use Carbon\Carbon; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -15,7 +16,7 @@ class AuditLogEntry extends Model public function getCreatedAtAttribute($value) { - return \Carbon\Carbon::parse($value) + return Carbon::parse($value) ->setTimezone('America/Chicago') ->format('M j, Y H:i:s'); }