From c29160a240e4c0cd76afc384f0e9afb3e0d4200e Mon Sep 17 00:00:00 2001 From: Marco Glietsch Date: Sun, 6 Apr 2025 10:56:37 +0200 Subject: [PATCH] =?UTF-8?q?Anmeldeformular=20f=C3=BCr=20Bev=C3=B6lkerungss?= =?UTF-8?q?chutz=C3=BCbung=202025?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/ContactController.php | 71 ++++++- app/Models/SubscribePopulationExercise.php | 29 +++ ...te_subscribe_population_exercise_table.php | 40 ++++ .../subscribePopulationExercise.blade.php | 183 ++++++++++++++++++ ...bscribePopulationExerciseSuccess.blade.php | 32 +++ routes/web.php | 11 ++ 6 files changed, 364 insertions(+), 2 deletions(-) create mode 100644 app/Models/SubscribePopulationExercise.php create mode 100644 database/migrations/2025_04_06_145900_create_subscribe_population_exercise_table.php create mode 100644 resources/views/inc/contact/subscribePopulationExercise.blade.php create mode 100644 resources/views/inc/contact/subscribePopulationExerciseSuccess.blade.php diff --git a/app/Http/Controllers/ContactController.php b/app/Http/Controllers/ContactController.php index 6067a066..24c9de2a 100644 --- a/app/Http/Controllers/ContactController.php +++ b/app/Http/Controllers/ContactController.php @@ -17,6 +17,7 @@ use App\Models\SubscribeYouthFireFighter; use App\Models\SubscribeDekon; use App\Models\SubscribeHelperParty; use App\Models\SubscribeEm2024; +use App\Models\SubscribePopulationExercise; use App\Helpers\AccessHelper as Access; use \Carbon\Carbon; use Response; @@ -43,7 +44,9 @@ class ContactController extends ExtendedController 'subscribeHelperPartySave', 'subscribeEm2024', 'subscribeEm2024Save', - 'subscribeEm2024Info' + 'subscribeEm2024Info', + 'subscribePopulationExercise', + 'subscribePopulationExerciseSave' ); parent::__construct(); } @@ -422,7 +425,7 @@ class ContactController extends ExtendedController 'firstname.required' => 'Pflichtfeld', 'firstname.min' => 'Mindestens :min Zeichen', 'lastname.required' => 'Pflichtfeld', - 'lasstname.min' => 'Mindestens :min Zeichen', + 'lastname.min' => 'Mindestens :min Zeichen', ]); @@ -457,4 +460,68 @@ class ContactController extends ExtendedController return $view; } + + /*****************************************/ + /* Anmeldung zur Bevölkerungsschutzübung */ + /*****************************************/ + public function subscribePopulationExercise(Request $request) + { + $formdata = new SubscribePopulationExercise(); + $view = view("inc.contact.subscribePopulationExercise"); + $view->with('url', $this->route); + $view->with('formdata', $formdata); + $view->with('expired', false); + + return $view; + } + + public function subscribePopulationExerciseSave(Request $request) + { + $request->request->add(['city' => $request->city[0]]); + $formdata = $request->validate([ + 'firstname' => 'required|min:3', + 'lastname' => 'required|min:3', + 'street' => 'required|min:3', + 'streetnumber' => 'required', + 'city' => 'required', + 'phone' => 'required|min:4', + 'email' => 'required|email' + ], + [ + 'firstname.required' => 'Pflichtfeld', + 'firstname.min' => 'Mindestens :min Zeichen', + 'lastname.required' => 'Pflichtfeld', + 'lastname.min' => 'Mindestens :min Zeichen', + 'street.required' => 'Pflichtfeld', + 'street.min' => 'Mindestens :min Zeichen', + 'streetnumber.required' => 'Pflichtfeld', + 'streetnumber.min' => 'Mindestens :min Zeichen', + 'city.required' => 'Pflichtfeld', + 'phone.required' => 'Pflichtfeld', + 'phone.min' => 'Mindestens :min Zeichen', + 'email.email' => 'Es muss eine gültige Emailadresse angegeben werden', + ]); + + + $checkmodel = SubscribePopulationExercise::where('lastname', $request->lastname) + ->where('firstname', $request->firstname) + ->where('city', $request->city); + + $view = null; + + $model = new SubscribePopulationExercise(); + if($checkmodel->get()->count()) + { + $model = $checkmodel->first(); + $model->driving = $request->has('driving') ? $request->input('driving') : false; + } + + $model->fill($request->all()); +# $model->city = $request->city[0]; + $model->save(); + + $view = view("inc.contact.subscribePopulationExerciseSuccess"); + + return $view; + } } \ No newline at end of file diff --git a/app/Models/SubscribePopulationExercise.php b/app/Models/SubscribePopulationExercise.php new file mode 100644 index 00000000..439e761a --- /dev/null +++ b/app/Models/SubscribePopulationExercise.php @@ -0,0 +1,29 @@ +increments('id'); + $table->string('lastname', 50); + $table->string('firstname', 50); + $table->string('street', 50); + $table->string('streetnumber', 5); + $table->string('city', 20); + $table->string('phone', 50); + $table->string('email', 100); + $table->boolean('driving'); + $table->timestamps(); + $table->softDeletes(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('subscribe_population_exercise'); + } +} diff --git a/resources/views/inc/contact/subscribePopulationExercise.blade.php b/resources/views/inc/contact/subscribePopulationExercise.blade.php new file mode 100644 index 00000000..be1efc64 --- /dev/null +++ b/resources/views/inc/contact/subscribePopulationExercise.blade.php @@ -0,0 +1,183 @@ +@extends('layouts.app') + +@section('social_media') + + +@endsection + +@section('content') +
+
+

+ Anmeldung zur Bevölkerungsschutzübung +

+
+
+
+
+
+
+ + @if($expired) +
+
+ Es tut uns Leid, aber der Anmeldezeitraum ist abgelaufen. +
+
+ @else + +
+
+

+ Sehr geehrte Damen und Herren,
+
+ die Stadt Eppingen plant zusammen mit der Feuerwehr Eppingen am 10.05.2025 eine + Bevölkerungsschutzübung, bei der wir die Unterstützung möglichst vieler Statisten + benötigen.
+ In diesem Zusammenhang möchte ich Sie um ihre Hilfe bitten. + Wir möchten die Einrichtung von Notrufposten und Notfalltreffpunkten welche bei + Großschadenslagen wie z.B. bei einem flächendeckenden Stromausfall so realitätsnah wie + möglich proben.
+ Hierzu werden in allen Stadtteilen der Gesamtstadt Eppingen die Notrufposten und + Notfalltreffpunkte durch ehrenamtliche in der Zeit zwischen 9 Uhr und 12 Uhr in Betrieb + genommen.
+ Die Statisten bekommen nach der Anmeldung über die Homepage der Feuerwehr Eppingen + eine vorgefertigte Rolle zugeteilt. Den weiteren Anweisungen ist dann Folge zu leisten. + Eine derartige Übung gab es bislang noch nicht. Das Gelingen wird maßgeblich davon + abhängen, wie viele Statisten sich finden und mitmachen werden. Über ihren Beitrag zum + positiven Verlauf der Übung würde ich mich sehr freuen und wäre Ihnen persönlich sehr + dankbar.
+ Sicherlich haben Sie noch einige Fragen. Hierzu verweise ich Sie an die FAQs am Ende dieser Seite.
+
+ Mit freundlichen Grüßen
+
+ Thomas Blösch + Feuerwehr Eppingen +

+
+
+
+
+
+ {{ csrf_field() }} + @include('inc.forms.inputText', [ + 'name' => 'lastname', + 'label' => 'Nachname *', + 'placeholder' => 'Nachname', + 'value' => $formdata->firstnameParent + ]) + @include('inc.forms.inputText', [ + 'name' => 'firstname', + 'label' => 'Vorname *', + 'placeholder' => 'Vorname', + 'value' => $formdata->lastnameParent + ]) + @include('inc.forms.inputText', [ + 'name' => 'street', + 'label' => 'Straße *', + 'placeholder' => 'Straße', + 'value' => $formdata->street + ]) + @include('inc.forms.inputText', [ + 'name' => 'streetnumber', + 'label' => 'Hausnummer *', + 'placeholder' => 'Hausnummer', + 'value' => $formdata->streetnumber + ]) + {{ $formdata->streetnumber }} + @include('inc.forms.inputSelect', [ + 'name' => 'city', + 'label' => 'Wohnort *', + 'placeholder' => 'Wohnort', + 'selected' => old('city.0'), + 'modelValue' => 'city', + 'modelLabel' => 'city', + 'models' => [ + (object)['city' => ''], + (object)['city' => 'Adelshofen'], + (object)['city' => 'Elsenz'], + (object)['city' => 'Eppingen'], + (object)['city' => 'Kleingartach'], + (object)['city' => 'Mühlbach'], + (object)['city' => 'Richen'], + (object)['city' => 'Rohrbach'] + ] + ]) + @include('inc.forms.inputText', [ + 'name' => 'phone', + 'label' => 'Telefonnummer für Rückfragen *', + 'placeholder' => 'Telefonnummer', + 'value' => $formdata->phone + ]) + @include('inc.forms.inputText', [ + 'name' => 'email', + 'label' => 'Emailadresse für weiterführende Informationen *', + 'placeholder' => 'Email', + 'value' => $formdata->email + ]) + Ich bin an diesem Tag Mobil und kann fahren. + @include('inc.forms.inputCheckbox', [ + 'name' => 'driving', + 'label' => 'Fahrmöglichkeit vorhanden', + 'model' => $formdata + ]) + +
+ * Pflichtfeld +
+
+ +
+
+
+
+ @endif +
+
+

FAQs

+

+ Was müssen die Statisten tun?
+ Statisten bekommen per Mail in der Woche vor der Bevölkerungsschutzübung eine Rolle + zugeteilt. Dort aufgeführt ist die jeweilige Adresse, an der die Rolle abgespielt werden soll + und die Uhrzeit der Einspielung. Es wird versucht die Rolle auf das eigene Ortsteil zu + beschränken. Das Übungsende ist für 12 Uhr vorgesehen. +
+
+ Wie kann ich mich als Teilnehmender anmelden?
+ Bitte melden Sie ihre Teilnahme online über www.feuerwehr-eppingen.de mit. Sie + bekommen dann eine Anmeldebestätigung.
+
+ Wer darf teilnehmen?
+ Alle volljährigen Personen, die sich zum Zeitpunkt der Übung geistig und körperlich in der + Lage fühlen, an der Bevölkerungsschutzübung teilzunehmen. Dies liegt in ihrer eigenen + Verantwortung. Durch ihre Anwesenheit bestätigen Sie uns, dass Sie sich fit für die Rolle als + Statist fühlen. + Minderjährige Personen dürfen nur dann teilnehmen, wenn Sie in Begleitung eines + Erwachsenen sind, der die Aufsichtspflicht über sie ausüben kann und darf.
+
+ Bild- und Videoaufnahmen!!
+ Wir möchten Sie darauf hinweisen, dass bei der Veranstaltung Fotos und Videos gefertigt + werden. Die Fotos und Videos werden zum Zweck der Dokumentation der Veranstaltung und + im Rahmen unserer Öffentlichkeitsarbeit verwendet. Wenn Sie nicht fotografiert oder gefilmt + werden möchten, sprechen Sie dies bitte unmittelbar beim Fotografen an.
+
+ Rechtsgrundlage für die o.g. Datenverarbeitung ist Art. 6 Abs. 1 Satz 1 lit. e, Abs. 2, Abs. 3 + DSGVO i.V.m. § 3 LDSG. +

+
+
+@endsection \ No newline at end of file diff --git a/resources/views/inc/contact/subscribePopulationExerciseSuccess.blade.php b/resources/views/inc/contact/subscribePopulationExerciseSuccess.blade.php new file mode 100644 index 00000000..72cf4985 --- /dev/null +++ b/resources/views/inc/contact/subscribePopulationExerciseSuccess.blade.php @@ -0,0 +1,32 @@ +@extends('layouts.app') + +@section('social_media') + + +@endsection + +@section('content') +
+
+

+ Anmeldebestätigung +

+
+
+
+
+
+
+
+
+ Vielen Dank für die Anmeldung zur Bevölkerungsschutzübung.
+ Wir werden Ihre Anmeldung überprüfen uns uns mit Ihnen in Verbindung setznen +
+ Ihre Feuerwehr Eppingen +
+
+
+
+ +
+@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 8114ca03..6c3c92dc 100644 --- a/routes/web.php +++ b/routes/web.php @@ -164,6 +164,17 @@ Route::get("anmeldung-em-2024/info", [ 'middleware' => 'auth', function (){} ]); +Route::get("anmeldung-bevoelkerungsschutzuebung", [ + "uses" => "ContactController@subscribePopulationExercise", +], [ + 'middleware' => 'auth', function (){} +]); +Route::post("anmeldung-bevoelkerungsschutzuebung/abschliessen", [ + "uses" => "ContactController@subscribePopulationExerciseSave", +], [ + 'middleware' => 'auth', function (){} +]); + /****************************************/