Stand: SMTP-Test, Admin-Mail-Tab, Notifiable-Fix, Lazy-Quill
- Fix: Notifiable-Trait zum User-Model hinzugefuegt (behebt notify()-500er) - Installer: SMTP-Verbindungstest mit EsmtpTransport + Ueberspringen-Link - Admin: Neuer E-Mail-Tab mit SMTP-Konfiguration + Verbindungstest - Admin: Lazy Quill-Initialisierung (nur sichtbare Locale wird geladen) - Uebersetzungen: 17 neue Mail-Keys in allen 6 Sprachen Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
57
app/Http/Controllers/CateringController.php
Executable file
57
app/Http/Controllers/CateringController.php
Executable file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Enums\CateringStatus;
|
||||
use App\Enums\EventStatus;
|
||||
use App\Models\ActivityLog;
|
||||
use App\Models\Event;
|
||||
use App\Models\EventCatering;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CateringController extends Controller
|
||||
{
|
||||
public function update(Request $request, Event $event): RedirectResponse
|
||||
{
|
||||
$user = auth()->user();
|
||||
|
||||
if ($event->status === EventStatus::Cancelled) {
|
||||
abort(403);
|
||||
}
|
||||
|
||||
if (!$event->type->hasCatering()) {
|
||||
abort(403);
|
||||
}
|
||||
|
||||
if (!$user->canAccessAdminPanel()) {
|
||||
if ($event->status === EventStatus::Draft) {
|
||||
abort(403);
|
||||
}
|
||||
if (!$user->accessibleTeamIds()->contains($event->team_id)) {
|
||||
abort(403);
|
||||
}
|
||||
}
|
||||
|
||||
$request->validate([
|
||||
'status' => 'required|in:yes,no,unknown',
|
||||
'note' => 'nullable|string|max:255',
|
||||
]);
|
||||
|
||||
$existing = EventCatering::where('event_id', $event->id)->where('user_id', auth()->id())->first();
|
||||
$oldStatus = $existing?->status?->value ?? 'unknown';
|
||||
|
||||
$catering = EventCatering::where('event_id', $event->id)->where('user_id', auth()->id())->first();
|
||||
if (!$catering) {
|
||||
$catering = new EventCatering(['event_id' => $event->id]);
|
||||
$catering->user_id = auth()->id();
|
||||
}
|
||||
$catering->status = CateringStatus::from($request->status);
|
||||
$catering->note = $request->note;
|
||||
$catering->save();
|
||||
|
||||
ActivityLog::logWithChanges('status_changed', __('admin.log_catering_changed', ['event' => $event->title, 'status' => $request->status]), 'Event', $event->id, ['status' => $oldStatus, 'user_id' => auth()->id(), 'source' => 'catering'], ['status' => $request->status, 'user_id' => auth()->id(), 'source' => 'catering']);
|
||||
|
||||
return redirect(route('events.show', $event) . '#catering');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user