Anmeldeformular für Bevölkerungsschutzübung 2025

This commit is contained in:
Marco Glietsch 2025-04-06 10:56:37 +02:00
parent a52238dd5d
commit c29160a240
6 changed files with 364 additions and 2 deletions

View File

@ -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;
}
}

View File

@ -0,0 +1,29 @@
<?php
namespace App\Models;
use App\Models\Traits\FullTextSearch;
use App\Models\Traits\Documents;
use Illuminate\Database\Eloquent\Model;
use OwenIt\Auditing\Contracts\Auditable;
use Illuminate\Support\Arr;
use Cviebrock\EloquentSluggable\Sluggable;
use App\Helpers\TagHelper;
use Carbon\Carbon;
use App\Helpers\PostHelper;
use App\Http\Controllers\ServiceController;
class SubscribePopulationExercise extends ExtendedModel
{
protected $table = 'subscribe_population_exercise';
protected $fillable = [
'lastname',
'firstname',
'street',
'streetnumber',
'city',
'phone',
'email',
'driving'
];
}

View File

@ -0,0 +1,40 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateSubscribePopulationExerciseTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('subscribe_population_exercise', function (Blueprint $table) {
$table->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');
}
}

View File

@ -0,0 +1,183 @@
@extends('layouts.app')
@section('social_media')
<meta property="fb:app_id" content="{{ config('social-media-manager.facebook.app_id') }}"/>
<meta property="og:type" content="website"/>
@endsection
@section('content')
<article class="post-item card pt-3 pb-3 mb-lg-5 shadow-sm">
<div class="row">
<h1 class="col-lg-12 card-title">
Anmeldung zur Bevölkerungsschutzübung
</h1>
</div>
<div class="row">
<div class="col-lg-12">
<hr>
</div>
</div>
<!-- -- >
<div class="row">
<div class="col-lg-6">
Links
</div>
<div class="col-lg-6 text-right">
Rechts
</div>
</div>
<div class="row">
<div class="col-lg-12">
<hr>
</div>
</div>
<!-- -->
@if($expired)
<div class="row">
<div class="col">
Es tut uns Leid, aber der Anmeldezeitraum ist abgelaufen.
</div>
</div>
@else
<div class="row">
<div class="col">
<p>
Sehr geehrte Damen und Herren,<br/>
<br/>
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.<br/>
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.<br/>
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.<br/>
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.<br/>
Sicherlich haben Sie noch einige Fragen. Hierzu verweise ich Sie an die FAQs am Ende dieser Seite.<br/>
<br/>
Mit freundlichen Grüßen<br/>
<br/>
Thomas Blösch
Feuerwehr Eppingen
</p>
</div>
</div>
<div class="row">
<div class="col-lg-12 card-content">
<form action="{{ config('app.url') . '/anmeldung-bevoelkerungsschutzuebung/abschliessen' }}" method="POST">
{{ 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
])
<div class="form-group">
* Pflichtfeld
</div>
<div class="form-group">
<button class="btn btn-primary">Anmelden</button>
</div>
</form>
</div>
</div>
@endif
<div class="row mt-3">
<div class="col-lg-12">
<h3>FAQs</h3>
<p>
<b>Was müssen die Statisten tun?</b><br/>
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.
<br/>
<br/>
<b>Wie kann ich mich als Teilnehmender anmelden?</b><br/>
Bitte melden Sie ihre Teilnahme online über www.feuerwehr-eppingen.de mit. Sie
bekommen dann eine Anmeldebestätigung.<br/>
<br/>
<b>Wer darf teilnehmen?</b><br/>
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.<br/>
<br/>
<b>Bild- und Videoaufnahmen!!</b><br/>
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.<br/>
<br/>
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.
</div>
</div>
</article>
@endsection

View File

@ -0,0 +1,32 @@
@extends('layouts.app')
@section('social_media')
<meta property="fb:app_id" content="{{ config('social-media-manager.facebook.app_id') }}"/>
<meta property="og:type" content="website"/>
@endsection
@section('content')
<article class="post-item card pt-3 pb-3 mb-lg-5 shadow-sm">
<div class="row">
<h1 class="col-lg-12 card-title">
Anmeldebestätigung
</h1>
</div>
<div class="row">
<div class="col-lg-12">
<hr>
</div>
</div>
<div class="row">
<div class="col">
Vielen Dank für die Anmeldung zur Bevölkerungsschutzübung.<br/>
Wir werden Ihre Anmeldung überprüfen uns uns mit Ihnen in Verbindung setznen
<br/>
Ihre Feuerwehr Eppingen
<br/>
<br/>
</div>
</div>
</article>
@endsection

View File

@ -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 (){}
]);
/****************************************/