Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e2fb616565 | |||
| faaf12b6a4 | |||
| 1a69a20750 | |||
| 71cb09f051 | |||
| b668195e21 | |||
| 94934027fa | |||
| 120c8873ef | |||
| 188735e4aa | |||
| b291c05da7 | |||
| adffa6d6b2 | |||
| 4357fd022d | |||
| d6416d9c6b | |||
| 7c1125e213 | |||
| b91af2e889 | |||
| 4a97cf230b | |||
| 0c7e3ab365 | |||
| 222113b0d5 | |||
| 895e44c984 | |||
| ef3d03200e | |||
| 6c891ff64a | |||
| d9ba5ab4f1 | |||
| 1816ca5165 | |||
| dff7d65476 | |||
| ce57669263 | |||
| 2444aab204 | |||
| 7b2f2de1f0 |
@@ -0,0 +1,5 @@
|
|||||||
|
.ai
|
||||||
|
.junie
|
||||||
|
.git
|
||||||
|
storage
|
||||||
|
tests
|
||||||
@@ -19,7 +19,7 @@ class SignUpRequest {
|
|||||||
public Tenant $localGroup,
|
public Tenant $localGroup,
|
||||||
public DateTime $birthday,
|
public DateTime $birthday,
|
||||||
public string $address_1,
|
public string $address_1,
|
||||||
public string $address_2,
|
public ?string $address_2,
|
||||||
public string $postcode,
|
public string $postcode,
|
||||||
public string $city,
|
public string $city,
|
||||||
public string $email_1,
|
public string $email_1,
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ class UpdateParticipantRequest {
|
|||||||
public string $birthday,
|
public string $birthday,
|
||||||
public string $email_1,
|
public string $email_1,
|
||||||
public string $phone_1,
|
public string $phone_1,
|
||||||
public string $contact_person,
|
public ?string $contact_person,
|
||||||
public ?string $email_2,
|
public ?string $email_2,
|
||||||
public ?string $phone_2,
|
public ?string $phone_2,
|
||||||
public string $arrival,
|
public string $arrival,
|
||||||
|
|||||||
@@ -41,7 +41,8 @@ class CreateController extends CommonController {
|
|||||||
$payPerDay = $request->input('eventPayPerDay');
|
$payPerDay = $request->input('eventPayPerDay');
|
||||||
$payDirect = $request->input('eventPayDirectly');
|
$payDirect = $request->input('eventPayDirectly');
|
||||||
|
|
||||||
$billingDeadline = $eventEnd->modify('+1 month');
|
$billingDeadline = clone $eventEnd;
|
||||||
|
$billingDeadline->modify('+6 weeks');
|
||||||
|
|
||||||
$createRequest = new CreateEventRequest(
|
$createRequest = new CreateEventRequest(
|
||||||
$request->input('eventName'),
|
$request->input('eventName'),
|
||||||
|
|||||||
@@ -97,7 +97,8 @@ class SignupController extends CommonController {
|
|||||||
);
|
);
|
||||||
|
|
||||||
$signupRequest = new SignUpRequest(
|
$signupRequest = new SignUpRequest(
|
||||||
$event,$registrationData['userId'],
|
$event,
|
||||||
|
$registrationData['userId'] ?? null,
|
||||||
$registrationData['vorname'],
|
$registrationData['vorname'],
|
||||||
$registrationData['nachname'],
|
$registrationData['nachname'],
|
||||||
$registrationData['pfadiname'],
|
$registrationData['pfadiname'],
|
||||||
|
|||||||
@@ -16,10 +16,13 @@ Route::middleware(IdentifyTenant::class)->group(function () {
|
|||||||
Route::get('/{eventId}/signup', SignupController::class);
|
Route::get('/{eventId}/signup', SignupController::class);
|
||||||
|
|
||||||
Route::middleware(['auth'])->group(function () {
|
Route::middleware(['auth'])->group(function () {
|
||||||
Route::get('/new', CreateController::class);
|
|
||||||
Route::get('/details/{eventId}', DetailsController::class);
|
Route::get('/details/{eventId}', DetailsController::class);
|
||||||
Route::get('/details/{eventId}/pdf/{listType}', [DetailsController::class, 'downloadPdfList']);
|
Route::get('/details/{eventId}/pdf/{listType}', [DetailsController::class, 'downloadPdfList']);
|
||||||
Route::get('/details/{eventId}/csv/{listType}', [DetailsController::class, 'downloadCsvList']);
|
Route::get('/details/{eventId}/csv/{listType}', [DetailsController::class, 'downloadCsvList']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::middleware(['auth'])->group(function () {
|
||||||
|
Route::get('/create-event', CreateController::class);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -137,7 +137,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>Anmelde-URL</th>
|
<th>Anmelde-URL</th>
|
||||||
<td>
|
<td>
|
||||||
{{dynamicProps.event.url}}<br />
|
{{dynamicProps.event.urlShort}}<br />
|
||||||
<img :src="'/print-event-code/' + dynamicProps.event.identifier" alt="Event Code" style="width: 150px; height: 150px; margin-top: 20px;" />
|
<img :src="'/print-event-code/' + dynamicProps.event.identifier" alt="Event Code" style="width: 150px; height: 150px; margin-top: 20px;" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ watch(
|
|||||||
form.medications = participant?.medications ?? '';
|
form.medications = participant?.medications ?? '';
|
||||||
form.extendedFirstAid = participant?.first_aid_permission ?? '';
|
form.extendedFirstAid = participant?.first_aid_permission ?? '';
|
||||||
form.swimmingPermission = participant?.swimming_permission ?? '';
|
form.swimmingPermission = participant?.swimming_permission ?? '';
|
||||||
form.tetanusVaccination = participant?.tetanus_vaccination ?? '';
|
form.tetanusVaccination = participant?.tetanusVaccinationEdit ?? '';
|
||||||
form.notes = participant?.notes ?? '';
|
form.notes = participant?.notes ?? '';
|
||||||
form.amountPaid = participant?.amountPaid.short ?? '';
|
form.amountPaid = participant?.amountPaid.short ?? '';
|
||||||
form.amountExpected = participant?.amountExpected.short ?? '';
|
form.amountExpected = participant?.amountExpected.short ?? '';
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {reactive} from "vue";
|
import {reactive} from "vue";
|
||||||
|
import ErrorText from "../../../../../../Views/Components/ErrorText.vue";
|
||||||
|
|
||||||
const props = defineProps({ formData: Object, localGroups: Array })
|
const props = defineProps({ formData: Object, localGroups: Array })
|
||||||
const emit = defineEmits(['next', 'back'])
|
const emit = defineEmits(['next', 'back'])
|
||||||
@@ -64,6 +65,11 @@ const next = () => {
|
|||||||
hasError = true
|
hasError = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!props.formData.telefon_1) {
|
||||||
|
errors.telefon_1 = 'Bitte eine Telefonnummer angeben.'
|
||||||
|
hasError = true
|
||||||
|
}
|
||||||
|
|
||||||
if (!props.formData.email_1) {
|
if (!props.formData.email_1) {
|
||||||
errors.email_1 = 'Bitte eine E-Mail-Adresse angeben.'
|
errors.email_1 = 'Bitte eine E-Mail-Adresse angeben.'
|
||||||
hasError = true
|
hasError = true
|
||||||
@@ -80,8 +86,8 @@ const next = () => {
|
|||||||
<div>
|
<div>
|
||||||
<h3>Persönliche Daten</h3>
|
<h3>Persönliche Daten</h3>
|
||||||
<table class="form-table">
|
<table class="form-table">
|
||||||
<tr><td>Vorname:</td><td><input type="text" v-model="props.formData.vorname" /></td></tr>
|
<tr><td>Vorname:</td><td><input type="text" v-model="props.formData.vorname" /><ErrorText :message="errors.vorname"/></td></tr>
|
||||||
<tr><td>Nachname:</td><td><input type="text" v-model="props.formData.nachname" /></td></tr>
|
<tr><td>Nachname:</td><td><input type="text" v-model="props.formData.nachname" /><ErrorText :message="errors.nachname"/></td></tr>
|
||||||
<tr><td>Pfadiname:</td><td><input type="text" v-model="props.formData.pfadiname" /></td></tr>
|
<tr><td>Pfadiname:</td><td><input type="text" v-model="props.formData.pfadiname" /></td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Stamm:</td>
|
<td>Stamm:</td>
|
||||||
@@ -90,9 +96,10 @@ const next = () => {
|
|||||||
<option value="-1">Bitte wählen</option>
|
<option value="-1">Bitte wählen</option>
|
||||||
<option v-for="lg in localGroups" :key="lg.id" :value="lg.id">{{ lg.name }}</option>
|
<option v-for="lg in localGroups" :key="lg.id" :value="lg.id">{{ lg.name }}</option>
|
||||||
</select>
|
</select>
|
||||||
|
<ErrorText :message="errors.localGroup" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Geburtsdatum:</td><td><input type="date" v-model="props.formData.geburtsdatum" /></td></tr>
|
<tr><td>Geburtsdatum:</td><td><input type="date" v-model="props.formData.geburtsdatum" /><ErrorText :message="errors.geburtsdatum" /></td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Adresse:</td>
|
<td>Adresse:</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -103,6 +110,7 @@ const next = () => {
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td>
|
<td>
|
||||||
<input type="text" v-model="props.formData.address2" />
|
<input type="text" v-model="props.formData.address2" />
|
||||||
|
<ErrorText :message="errors.address1" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -110,10 +118,12 @@ const next = () => {
|
|||||||
<td>
|
<td>
|
||||||
<input maxlength="5" type="text" v-model="props.formData.plz" style="width: 100px; margin-right: 8px;" />
|
<input maxlength="5" type="text" v-model="props.formData.plz" style="width: 100px; margin-right: 8px;" />
|
||||||
<input type="text" v-model="props.formData.ort" style="width: calc(100% - 110px);" />
|
<input type="text" v-model="props.formData.ort" style="width: calc(100% - 110px);" />
|
||||||
|
<ErrorText :message="errors.plz" />
|
||||||
|
<ErrorText :message="errors.ort" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><td>Telefon:</td><td><input type="text" v-model="props.formData.telefon_1" /></td></tr>
|
<tr><td>Telefon:</td><td><input type="text" v-model="props.formData.telefon_1" /><ErrorText :message="errors.telefon_1" /></td></tr>
|
||||||
<tr><td>E-Mail:</td><td><input type="text" v-model="props.formData.email_1" /></td></tr>
|
<tr><td>E-Mail:</td><td><input type="text" v-model="props.formData.email_1" /><ErrorText :message="errors.email_1" /></td></tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2" class="btn-row">
|
<td colspan="2" class="btn-row">
|
||||||
<button type="button" class="btn-primary" @click="next">Weiter →</button>
|
<button type="button" class="btn-primary" @click="next">Weiter →</button>
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ class CreateInvoiceReceiptCommand {
|
|||||||
storage_path('app/private/' .$filename) . '.zip',
|
storage_path('app/private/' .$filename) . '.zip',
|
||||||
ZipArchive::CREATE | ZipArchive::OVERWRITE
|
ZipArchive::CREATE | ZipArchive::OVERWRITE
|
||||||
);
|
);
|
||||||
|
dd($receipt);
|
||||||
$zip->addFile(storage_path('app/private/' . $tmpFileName ), 'antrag.pdf');
|
$zip->addFile(storage_path('app/private/' . $tmpFileName ), 'antrag.pdf');
|
||||||
$zip->addFile(storage_path('app/private/' . $receipt), 'beleg.pdf');
|
$zip->addFile(storage_path('app/private/' . $receipt), 'beleg.pdf');
|
||||||
|
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ async function sendData() {
|
|||||||
name="contact_telephone" v-model="userTelephone"
|
name="contact_telephone" v-model="userTelephone"
|
||||||
style="font-size: 14pt; width: 550px;" /><br /><br />
|
style="font-size: 14pt; width: 550px;" /><br /><br />
|
||||||
|
|
||||||
<span id="decision" v-if="userEmail !== '' && decision === ''">
|
<span id="decision" v-if="userEmail !== '' && userTelephone !== '' && decision === ''">
|
||||||
<label><br />
|
<label><br />
|
||||||
<strong>Möchtest du den Betrag spenden?</strong>
|
<strong>Möchtest du den Betrag spenden?</strong>
|
||||||
</label><br />
|
</label><br />
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class UserRegistrationCommand {
|
|||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
$generateActivationCoedeRequest = new GenerateActivationTokenRequest($user);
|
$generateActivationCoedeRequest = new GenerateActivationTokenRequest($user, new \DateTime()->add(new \DateInterval('P1D')));
|
||||||
$generateActivationCoedeDommand = new GenerateActivationTokenCommand($generateActivationCoedeRequest);
|
$generateActivationCoedeDommand = new GenerateActivationTokenCommand($generateActivationCoedeRequest);
|
||||||
$result = $generateActivationCoedeDommand->execute();
|
$result = $generateActivationCoedeDommand->execute();
|
||||||
|
|
||||||
|
|||||||
@@ -24,12 +24,10 @@ class ProductionDataSeeder {
|
|||||||
$this->installSwimmingPermissions();
|
$this->installSwimmingPermissions();
|
||||||
$this->installEatingHabits();
|
$this->installEatingHabits();
|
||||||
$this->installFirstAidPermissions();
|
$this->installFirstAidPermissions();
|
||||||
$this->installTenants();
|
|
||||||
$this->installInvoiceMetaData();
|
$this->installInvoiceMetaData();
|
||||||
$this->installParticipationFeeTypes();
|
$this->installParticipationFeeTypes();
|
||||||
$this->installParticipationTypes();
|
$this->installParticipationTypes();
|
||||||
$this->installEfzStatus();
|
$this->installEfzStatus();
|
||||||
$this->installCronTasks();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function installEfzStatus() {
|
private function installEfzStatus() {
|
||||||
@@ -102,21 +100,7 @@ class ProductionDataSeeder {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function installTenants() {
|
|
||||||
Tenant::create([
|
|
||||||
'slug' => 'lv',
|
|
||||||
'name' => 'Landesunmittelbare Mitglieder',
|
|
||||||
'url' => 'mareike.local',
|
|
||||||
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V.',
|
|
||||||
'account_iban' => 'DE12345678901234567890',
|
|
||||||
'account_bic' => 'GENODEF1S10',
|
|
||||||
'email' => 'test@example.com',
|
|
||||||
'city' => 'Lommatzsch',
|
|
||||||
'postcode' => '01623',
|
|
||||||
'is_active_local_group' => true,
|
|
||||||
'has_active_instance' => true,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function installInvoiceMetaData() {
|
private function installInvoiceMetaData() {
|
||||||
InvoiceType::create([
|
InvoiceType::create([
|
||||||
@@ -155,12 +139,5 @@ class ProductionDataSeeder {
|
|||||||
CronTaskType::create(['slug' => CronTaskType::CRON_TASK_TYPE_REALTIME]);
|
CronTaskType::create(['slug' => CronTaskType::CRON_TASK_TYPE_REALTIME]);
|
||||||
CronTaskType::create(['slug' => CronTaskType::CRON_TASK_TYPE_DAILY]);
|
CronTaskType::create(['slug' => CronTaskType::CRON_TASK_TYPE_DAILY]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function installCronTasks() {
|
|
||||||
CronTask::create(['name' => 'UploadInvoices', 'execution_type' => CronTaskType::CRON_TASK_TYPE_REALTIME]);
|
|
||||||
CronTask::create(['name' => 'CloseCostUnit', 'execution_type' => CronTaskType::CRON_TASK_TYPE_DAILY, 'schedule_time' => '00:05']);
|
|
||||||
CronTask::create(['name' => 'CloseEvent', 'execution_type' => CronTaskType::CRON_TASK_TYPE_DAILY, 'schedule_time' => '00:10']);
|
|
||||||
CronTask::create(['name' => 'NotifyTeam', 'execution_type' => CronTaskType::CRON_TASK_TYPE_DAILY, 'schedule_time' => '20:00']);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,271 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Installer\Providers;
|
||||||
|
|
||||||
|
use App\Enumerations\CronTaskType;
|
||||||
|
use App\Models\CronTask;
|
||||||
|
use App\Models\Tenant;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class BdpLvSachsenDataSeeder {
|
||||||
|
public function execute() {
|
||||||
|
$this->installTenants();
|
||||||
|
$this->installUsers();
|
||||||
|
$this->installCronTasks();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function installTenants()
|
||||||
|
{
|
||||||
|
Tenant::create([
|
||||||
|
'slug' => 'lv',
|
||||||
|
'name' => 'Landesunmittelbare Mitglieder',
|
||||||
|
'url' => 'beta.mareike.sachsen.pfadfinden.de',
|
||||||
|
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V.',
|
||||||
|
'account_iban' => 'DE12345678901234567890',
|
||||||
|
'account_bic' => 'GENODEF1S10',
|
||||||
|
'email' => 'landesvorstand@sachsen.pfadfinden.de',
|
||||||
|
'email_finance' => 'finanzamt@sachsen.pfadfinden.de',
|
||||||
|
'city' => 'Limbach-Oberfrohne',
|
||||||
|
'postcode' => '09212',
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
]);
|
||||||
|
|
||||||
|
Tenant::create([
|
||||||
|
'slug' => 'wm',
|
||||||
|
'name' => 'Wilde Möhre',
|
||||||
|
'url' => 'wilde-moehre.mareike.local',
|
||||||
|
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V. - Stamm Wilde Möhre',
|
||||||
|
'account_iban' => 'DE12345678901234567890',
|
||||||
|
'account_bic' => 'GENODEF1S10',
|
||||||
|
'email' => 'info@pfadfinden-halle.de',
|
||||||
|
'email_finance' => 'info@pfadfinden-halle.de',
|
||||||
|
'city' => 'Halle (Saale)',
|
||||||
|
'postcode' => '06120',
|
||||||
|
'download_exports' => true,
|
||||||
|
'upload_exports' => true,
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
]);
|
||||||
|
|
||||||
|
Tenant::create([
|
||||||
|
'slug' => 'anc',
|
||||||
|
'name' => 'Ancalagon',
|
||||||
|
'url' => 'ancalagon.mareike.sachsen.pfadfinden.de',
|
||||||
|
'download_exports' => true,
|
||||||
|
'upload_exports' => true,
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V. - Stamm Wilde Möhre',
|
||||||
|
'account_iban' => 'DE12345678901234567890',
|
||||||
|
'account_bic' => 'GENODEF1S10',
|
||||||
|
'email' => 'info@stamm-ancalagon.de',
|
||||||
|
'email_finance' => 'info@stamm-ancalagon.de',
|
||||||
|
'city' => 'Leipzig',
|
||||||
|
'postcode' => '04425',
|
||||||
|
]);
|
||||||
|
|
||||||
|
Tenant::create([
|
||||||
|
'slug' => 'ban',
|
||||||
|
'name' => 'Bankiva',
|
||||||
|
'url' => 'bankiva.mareike.sachsen.pfadfinden.de',
|
||||||
|
'download_exports' => true,
|
||||||
|
'upload_exports' => true,
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V. - Stamm Wilde Möhre',
|
||||||
|
'account_iban' => 'DE12345678901234567890',
|
||||||
|
'account_bic' => 'GENODEF1S10',
|
||||||
|
'email' => 'bankiva@sachsen.pfadfinden.de',
|
||||||
|
'email_finance' => 'bankiva@sachsen.pfadfinden.de',
|
||||||
|
'city' => 'Leipzig',
|
||||||
|
'postcode' => '04157',
|
||||||
|
]);
|
||||||
|
|
||||||
|
Tenant::create([
|
||||||
|
'slug' => 'ere',
|
||||||
|
'name' => 'Erebor',
|
||||||
|
'url' => 'erebor.mareike.sachsen.pfadfinden.de',
|
||||||
|
'download_exports' => true,
|
||||||
|
'upload_exports' => true,
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V. - Stamm Wilde Möhre',
|
||||||
|
'account_iban' => 'DE12345678901234567890',
|
||||||
|
'account_bic' => 'GENODEF1S10',
|
||||||
|
'email' => 'freiberg@sachsen.pfadfinden.de',
|
||||||
|
'email_finance' => 'freiberg@sachsen.pfadfinden.de',
|
||||||
|
'city' => 'Freiberg',
|
||||||
|
'postcode' => '09599',
|
||||||
|
]);
|
||||||
|
|
||||||
|
Tenant::create([
|
||||||
|
'slug' => 'fen',
|
||||||
|
'name' => 'Fennek',
|
||||||
|
'url' => 'fennek.mareike.local',
|
||||||
|
'download_exports' => true,
|
||||||
|
'upload_exports' => true,
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V. - Stamm Fennek',
|
||||||
|
'account_iban' => 'DE12345678901234567890',
|
||||||
|
'account_bic' => 'GENODEF1S10',
|
||||||
|
'email' => 'chemnitz@sachsen.pfadfinden.de',
|
||||||
|
'email_finance' => 'chemnitz@sachsen.pfadfinden.de',
|
||||||
|
'city' => 'Chemnitz',
|
||||||
|
'postcode' => '09125',
|
||||||
|
]);
|
||||||
|
|
||||||
|
Tenant::create([
|
||||||
|
'slug' => 'feu',
|
||||||
|
'name' => 'Feuerland',
|
||||||
|
'url' => 'feuerland.mareike.sachsen.pfadfinden.de',
|
||||||
|
'download_exports' => true,
|
||||||
|
'upload_exports' => true,
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V. - Stamm Feuerland',
|
||||||
|
'account_iban' => 'DE12345678901234567890',
|
||||||
|
'account_bic' => 'GENODEF1S10',
|
||||||
|
'email' => 'info@stamm-feuerland.de',
|
||||||
|
'email_finance' => 'info@stamm-feuerland.de',
|
||||||
|
'city' => 'Leipzig',
|
||||||
|
'postcode' => '04318',
|
||||||
|
]);
|
||||||
|
|
||||||
|
Tenant::create([
|
||||||
|
'slug' => 'gr',
|
||||||
|
'name' => 'Goldener Reiter',
|
||||||
|
'url' => 'goldener-reiter.mareike.sachsen.pfadfinden.de',
|
||||||
|
'download_exports' => true,
|
||||||
|
'upload_exports' => true,
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V. - Stamm Goldener Reiter',
|
||||||
|
'account_iban' => 'DE12345678901234567890',
|
||||||
|
'account_bic' => 'GENODEF1S10',
|
||||||
|
'email' => 'stafue@goldenerreiter.org',
|
||||||
|
'email_finance' => 'stafue@goldenerreiter.org',
|
||||||
|
'city' => 'Dresden',
|
||||||
|
'postcode' => '01099',
|
||||||
|
]);
|
||||||
|
|
||||||
|
Tenant::create([
|
||||||
|
'slug' => 'leo',
|
||||||
|
'name' => 'LEO',
|
||||||
|
'url' => 'leo.mareike.sachsen.pfadfinden.de',
|
||||||
|
'download_exports' => true,
|
||||||
|
'upload_exports' => true,
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V. - Stamm Leo',
|
||||||
|
'account_iban' => 'DE12345678901234567890',
|
||||||
|
'account_bic' => 'GENODEF1S10',
|
||||||
|
'email' => 'stafue@leipzig-pfadfinden.de',
|
||||||
|
'email_finance' => 'stafue@leipzig-pfadfinden.de',
|
||||||
|
'city' => 'Leipzig',
|
||||||
|
'postcode' => '04229',
|
||||||
|
]);
|
||||||
|
|
||||||
|
Tenant::create([
|
||||||
|
'slug' => 'rf',
|
||||||
|
'name' => 'Roter Fuchs',
|
||||||
|
'url' => 'roter-fuchs.mareike.sachsen.pfadfinden.de',
|
||||||
|
'download_exports' => true,
|
||||||
|
'upload_exports' => true,
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V. - Stamm Roter Fuchs',
|
||||||
|
'account_iban' => 'DE12345678901234567890',
|
||||||
|
'account_bic' => 'GENODEF1S10',
|
||||||
|
'email' => 'info@pfadfinden-lommatzsch.de',
|
||||||
|
'email_finance' => 'info@pfadfinden-lommatzsch.de',
|
||||||
|
'city' => 'Lommatzsch',
|
||||||
|
'postcode' => '01623',
|
||||||
|
]);
|
||||||
|
|
||||||
|
Tenant::create([
|
||||||
|
'slug' => 'sapi',
|
||||||
|
'name' => 'Saalepiraten',
|
||||||
|
'url' => 'saalepiraten.mareike.sachsen.pfadfinden.de',
|
||||||
|
'download_exports' => true,
|
||||||
|
'upload_exports' => true,
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
'account_name' => 'Bund der Pfadfinder*innen Landesverband Sachsen e.V. - Stamm Saalepiraten',
|
||||||
|
'account_iban' => 'DE12345678901234567890',
|
||||||
|
'account_bic' => 'GENODEF1S10',
|
||||||
|
'email' => 'saalepiratenbernburg@gmail.com',
|
||||||
|
'email_finance' => 'saalepiratenbernburg@gmail.com',
|
||||||
|
'city' => 'Bernburg',
|
||||||
|
'postcode' => '06408',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function installUsers() {
|
||||||
|
$users = [
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'ada@irmielin.org', 'local_group' => 'feu', 'firstname' => 'Ada', 'lastname' => 'Lindner', 'email' => 'ada@irmielin.org', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'adrianhuebner1@gmx.de', 'local_group' => 'lv', 'firstname' => 'Adrian', 'lastname' => 'Hübner', 'email' => 'adrianhuebner1@gmx.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'aneta2622@seznam.cz', 'local_group' => 'fen', 'firstname' => 'Josef', 'lastname' => 'Soukup', 'email' => 'aneta2622@seznam.cz', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'antje.heilmann@gmx.de', 'local_group' => 'sapi', 'firstname' => 'Antje', 'lastname' => 'Heilmann', 'email' => 'antje.heilmann@gmx.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'arne.hartmann@leipzig-pfadfinden.de', 'local_group' => 'leo', 'firstname' => 'Arne', 'lastname' => 'Hartmann', 'email' => 'arne.hartmann@leipzig-pfadfinden.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_ADMINISTRATOR', 'user_role_local_group' => 'ROLE_GROUP_LEADER', 'username' => 'thomas@pfadfinden-halle.de', 'local_group' => 'wm', 'firstname' => 'Thomas', 'lastname' => 'Günther', 'email' => 'thomas@pfadfinden-halle.de', 'activation_token_expires_at' => null, 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'corinna-veith@gmx.de', 'local_group' => 'lv', 'firstname' => 'Corinna', 'lastname' => 'Lajewski', 'email' => 'corinna-veith@gmx.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'eliseschenfeld@gmail.com', 'local_group' => 'leo', 'firstname' => 'Elise', 'lastname' => 'Schenfeld', 'email' => 'eliseschenfeld@gmail.com', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'emmi.pins@posteo.de', 'local_group' => 'feu', 'firstname' => 'Emily', 'lastname' => 'Pins', 'email' => 'emmi.pins@posteo.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'fangorn@goldenerreiter.org', 'local_group' => 'gr', 'firstname' => 'Karl', 'lastname' => 'Redemann', 'email' => 'fangorn@goldenerreiter.org', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'franziskabaer@posteo.de', 'local_group' => 'fen', 'firstname' => 'Franziska', 'lastname' => 'Baer', 'email' => 'franziskabaer@posteo.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'frederik.pitz@pfadfinden.de', 'local_group' => 'lv', 'firstname' => 'Frederik', 'lastname' => 'Pitz', 'email' => 'frederik.pitz@pfadfinden.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'fyn.thaerigen@gmail.com', 'local_group' => 'lv', 'firstname' => 'Fyn Valentin', 'lastname' => 'Thärigen', 'email' => 'fyn.thaerigen@gmail.com', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'jakob.rudolph@pfadfinden.de', 'local_group' => 'lv', 'firstname' => 'Jakob', 'lastname' => 'Rudolph', 'email' => 'jakob.rudolph@pfadfinden.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'jenny.abel@proton.me', 'local_group' => 'fen', 'firstname' => 'Jenny', 'lastname' => 'Abel', 'email' => 'jenny.abel@proton.me', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'Jerry@pfadfinden-halle.de', 'local_group' => 'wm', 'firstname' => 'Jérémie', 'lastname' => 'Duckwitz', 'email' => 'Jerry@pfadfinden-halle.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'jonathan.helm@pfadfinden.de', 'local_group' => 'lv', 'firstname' => 'Jonathan', 'lastname' => 'Helm', 'email' => 'jonathan.helm@pfadfinden.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'jul-ka@gmx.net', 'local_group' => 'sapi', 'firstname' => 'Juliane', 'lastname' => 'Kahl', 'email' => 'jul-ka@gmx.net', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'julia.meier@pfadfinden.de', 'local_group' => 'lv', 'firstname' => 'Julia', 'lastname' => 'Meier', 'email' => 'julia.meier@pfadfinden.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'julika.scheibler@leipzig-pfadfinden.de','local_group' => 'leo', 'firstname' => 'Julika', 'lastname' => 'Scheibler', 'email' => 'julika.scheibler@leipzig-pfadfinden.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'karlmarx.95@gmail.com', 'local_group' => 'sapi', 'firstname' => 'Karlmarx', 'lastname' => 'Thangamani', 'email' => 'karlmarx.95@gmail.com', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'kilian@cyberfuchs.de', 'local_group' => 'lv', 'firstname' => 'Kilian', 'lastname' => 'Fuchs', 'email' => 'kilian@cyberfuchs.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'korni@pfadfinden-lommatzsch.de', 'local_group' => 'rf', 'firstname' => 'Konstantin', 'lastname' => 'Stephan', 'email' => 'korni@pfadfinden-lommatzsch.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'laiu@gmx.net', 'local_group' => 'lv', 'firstname' => 'Roukaya', 'lastname' => 'Zakarias', 'email' => 'laiu@gmx.net', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'lars.kristen@gmx.net', 'local_group' => 'ban', 'firstname' => 'Lars', 'lastname' => 'Kristen', 'email' => 'lars.kristen@gmx.net', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'laura.kopsch@pfadfinden.de', 'local_group' => 'lv', 'firstname' => 'Laura', 'lastname' => 'Kopsch', 'email' => 'laura.kopsch@pfadfinden.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'leopardgecko333@gmx.de', 'local_group' => 'lv', 'firstname' => 'Konrad', 'lastname' => 'Birch-Hirschfeld', 'email' => 'leopardgecko333@gmx.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'lionhartmann@yahoo.de', 'local_group' => 'wm', 'firstname' => 'Lion', 'lastname' => 'Hartmann', 'email' => 'lionhartmann@yahoo.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'lisa.sy@gmx.net', 'local_group' => 'lv', 'firstname' => 'Lisa', 'lastname' => 'Synnatzschke', 'email' => 'lisa.sy@gmx.net', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'lukas.dalpke@gmx.de', 'local_group' => 'gr', 'firstname' => 'Lukas', 'lastname' => 'Dalpke', 'email' => 'lukas.dalpke@gmx.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'marc.friede@gmx.de', 'local_group' => 'lv', 'firstname' => 'Marc', 'lastname' => 'Friede', 'email' => 'marc.friede@gmx.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'marcel.pfadfinden@familiebrause.de', 'local_group' => 'fen', 'firstname' => 'Marcel', 'lastname' => 'Brause', 'email' => 'marcel.pfadfinden@familiebrause.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'maria.hahn1991@gmx.de', 'local_group' => 'wm', 'firstname' => 'Clara Sophie', 'lastname' => 'Hahn', 'email' => 'maria.hahn1991@gmx.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'marlene.koehler@pfadfinden.de', 'local_group' => 'lv', 'firstname' => 'Marlene', 'lastname' => 'Köhler', 'email' => 'marlene.koehler@pfadfinden.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'marslisdneu@aol.de', 'local_group' => 'feu', 'firstname' => 'Steffi', 'lastname' => 'Deckenbach', 'email' => 'marslisdneu@aol.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'mascha.meyenschein@pfadfinden.de', 'local_group' => 'lv', 'firstname' => 'Mascha', 'lastname' => 'Meyenschein', 'email' => 'mascha.meyenschein@pfadfinden.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'nataliehammer22@web.de', 'local_group' => 'lv', 'firstname' => 'Nathalie', 'lastname' => 'Hammermüller', 'email' => 'nataliehammer22@web.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'pdeakova@centrum.cz', 'local_group' => 'fen', 'firstname' => 'Mikulas', 'lastname' => 'Loub', 'email' => 'pdeakova@centrum.cz', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'pfadfinden@christian-schlag.org', 'local_group' => 'wm', 'firstname' => 'Christian', 'lastname' => 'Schlag', 'email' => 'pfadfinden@christian-schlag.org', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'rebekka.thielen@googlemail.com', 'local_group' => 'lv', 'firstname' => 'Almuna Elisa', 'lastname' => 'Hines', 'email' => 'rebekka.thielen@googlemail.com', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'rieke.langhans@gmail.com', 'local_group' => 'lv', 'firstname' => 'Rieke', 'lastname' => 'Langhans', 'email' => 'rieke.langhans@gmail.com', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'rolle@tocraft.dev', 'local_group' => 'anc', 'firstname' => 'Tobias', 'lastname' => 'Cuiper', 'email' => 'rolle@tocraft.dev', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'ronja.opel@icloud.com', 'local_group' => 'leo', 'firstname' => 'Ronja', 'lastname' => 'Opel', 'email' => 'ronja.opel@icloud.com', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'schubert-steffi83@web.de', 'local_group' => 'fen', 'firstname' => 'Fino Kilian', 'lastname' => 'Schubert', 'email' => 'schubert-steffi83@web.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'sebastianeckloff@gmx.de', 'local_group' => 'lv', 'firstname' => 'Sebastian', 'lastname' => 'Eckloff', 'email' => 'sebastianeckloff@gmx.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'sonne.grazek@yahoo.de', 'local_group' => 'feu', 'firstname' => 'Mandy', 'lastname' => 'Grazek', 'email' => 'sonne.grazek@yahoo.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'flieder.pfadfinden@familiebrause.de', 'local_group' => 'fen', 'firstname' => 'Sophie', 'lastname' => 'Brause', 'email' => 'flieder.pfadfinden@familiebrause.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'Theresa.grafe@posteo.de', 'local_group' => 'lv', 'firstname' => 'Theresa', 'lastname' => 'Grafe', 'email' => 'Theresa.grafe@posteo.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_ADMINISTRATOR', 'user_role_local_group' => 'ROLE_USER', 'username' => 'tux@goldenerreiter.org', 'local_group' => 'gr', 'firstname' => 'Christoph', 'lastname' => 'Wagner', 'email' => 'tux@goldenerreiter.org', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'undine.reschke@web.de', 'local_group' => 'lv', 'firstname' => 'Undine', 'lastname' => 'Reschke', 'email' => 'undine.reschke@web.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
['user_role_main' => 'ROLE_USER', 'user_role_local_group' => 'ROLE_USER', 'username' => 'yannik@suck-taucha.de', 'local_group' => 'lv', 'firstname' => 'Yannik', 'lastname' => 'Suck', 'email' => 'yannik@suck-taucha.de', 'activation_token_expires_at' => '2026-02-20 21:53:58', 'active' => true],
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($users as $userData) {
|
||||||
|
User::create($userData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function installCronTasks() {
|
||||||
|
CronTask::create(['name' => 'UploadInvoices', 'execution_type' => CronTaskType::CRON_TASK_TYPE_REALTIME]);
|
||||||
|
CronTask::create(['name' => 'CloseCostUnit', 'execution_type' => CronTaskType::CRON_TASK_TYPE_DAILY, 'schedule_time' => '00:05']);
|
||||||
|
CronTask::create(['name' => 'CloseEvent', 'execution_type' => CronTaskType::CRON_TASK_TYPE_DAILY, 'schedule_time' => '00:10']);
|
||||||
|
CronTask::create(['name' => 'NotifyTeam', 'execution_type' => CronTaskType::CRON_TASK_TYPE_DAILY, 'schedule_time' => '20:00']);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,7 +17,8 @@ class activationCodeTemplate extends MessageTemplate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function composeMessage(EmailAddress $emailAddress, string $activationCode): void {
|
public function composeMessage(EmailAddress $emailAddress, string $activationCode): void {
|
||||||
$this->message = "Dein Aktivierungscode lautet: {$activationCode}" . PHP_EOL .
|
$this->message = "Hallo,<br >dein angefordertet Aktivierungscode lautet: {$activationCode}<br />.
|
||||||
"Gib diesen zusammen mit der Mailadresse {$emailAddress->getValue()} ein.";
|
Gib diesen zusammen mit der Mailadresse {$emailAddress->getValue()} ein.<br /><br />
|
||||||
|
Hast du keinen Code angefordert?<br />In diesem Fall kannst du die E-Mail ignorieren.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ class EventParticipant extends InstancedModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getFullName() : string {
|
public function getFullName() : string {
|
||||||
if ($this->nickname === null) {
|
if ($this->nickname === null || trim($this->nickname) === '') {
|
||||||
return sprintf('%1$s %2$s', $this->firstname, $this->lastname)
|
return sprintf('%1$s %2$s', $this->firstname, $this->lastname)
|
||||||
|>trim(...);
|
|>trim(...);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ class GlobalDataProvider {
|
|||||||
$navigation['events'][] = ['url' => '/event/details/' . $event->identifier, 'display' => $event->name];
|
$navigation['events'][] = ['url' => '/event/details/' . $event->identifier, 'display' => $event->name];
|
||||||
}
|
}
|
||||||
|
|
||||||
$navigation['events'][] = ['url' => '/event/new', 'display' => 'Neue Veranstaltung'];
|
$navigation['events'][] = ['url' => '/create-event', 'display' => 'Neue Veranstaltung'];
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,12 +16,6 @@ class WebDavProvider {
|
|||||||
public function uploadFile(string $fileName) : bool {
|
public function uploadFile(string $fileName) : bool {
|
||||||
$baseDir = storage_path('app/private/');
|
$baseDir = storage_path('app/private/');
|
||||||
|
|
||||||
return $this->webDavClient->upload_file($baseDir . $fileName, $this->workingDirectory . '/'.
|
return $this->webDavClient->upload_file($baseDir . $fileName, $this->workingDirectory . '/');
|
||||||
basename($fileName)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ class CostUnitRepository {
|
|||||||
$visibleCostUnits = [];
|
$visibleCostUnits = [];
|
||||||
/** @var CostUnit $costUnit */
|
/** @var CostUnit $costUnit */
|
||||||
foreach (Costunit::where($criteria)->get() as $costUnit) {
|
foreach (Costunit::where($criteria)->get() as $costUnit) {
|
||||||
if ($costUnit->treasurers()->where('user_id', $user->id)->exists() || $canSeeAll || $disableAccessCheck) {
|
if ($canSeeAll || $disableAccessCheck || $costUnit->treasurers()->where('user_id', $user->id)->exists() ) {
|
||||||
if ($forDisplay) {
|
if ($forDisplay) {
|
||||||
$visibleCostUnits[] = new CostUnitResource($costUnit)->toArray(request());
|
$visibleCostUnits[] = new CostUnitResource($costUnit)->toArray(request());
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -48,10 +48,11 @@ class EventParticipantResource extends JsonResource
|
|||||||
'unregisteredAt' => $this->resource->unregistered_at?->format('d.m.Y'),
|
'unregisteredAt' => $this->resource->unregistered_at?->format('d.m.Y'),
|
||||||
'fullname' => $this->resource->getFullName(),
|
'fullname' => $this->resource->getFullName(),
|
||||||
'age' => new Age($this->resource->birthday)->getAge(),
|
'age' => new Age($this->resource->birthday)->getAge(),
|
||||||
'localgroup' => $this->resource->localGroup()->first()->name,
|
'localgroup' => $this->resource->localGroup()?->first()?->name ?? 'Nicht im LV',
|
||||||
'swimmingPermission' => $this->resource->swimmingPermission()->first()->short,
|
'swimmingPermission' => $this->resource->swimmingPermission()->first()->short,
|
||||||
'extendedFirstAid' => $this->resource->firstAidPermission()->first()->name,
|
'extendedFirstAid' => $this->resource->firstAidPermission()->first()->name,
|
||||||
'tetanusVaccination' => $this->resource->tetanus_vaccination?->format('d.m.Y') ?? 'Unbekannt',
|
'tetanusVaccination' => $this->resource->tetanus_vaccination?->format('d.m.Y') ?? 'Unbekannt',
|
||||||
|
'tetanusVaccinationEdit' => $this->resource->tetanus_vaccination?->format('Y-m-d') ?? null,
|
||||||
'presenceDays' => ['real' => $presenceDays, 'support' => $presenceDaysSupport],
|
'presenceDays' => ['real' => $presenceDays, 'support' => $presenceDaysSupport],
|
||||||
'participationType' => ParticipationType::where(['slug' => $this->resource->participation_type])->first()->name,
|
'participationType' => ParticipationType::where(['slug' => $this->resource->participation_type])->first()->name,
|
||||||
'needs_payment' => $this->resource->amount->getAmount() > 0 && $event->pay_direct && $this->resource->amount_paid?->getAmount() < $this->resource->amount->getAmount(),
|
'needs_payment' => $this->resource->amount->getAmount() > 0 && $event->pay_direct && $this->resource->amount_paid?->getAmount() < $this->resource->amount->getAmount(),
|
||||||
@@ -64,10 +65,10 @@ class EventParticipantResource extends JsonResource
|
|||||||
'amountPaid' => ['value' => $this->resource->amount_paid, 'readable' => $this->resource->amount_paid?->toString() ?? '0,00 Euro', 'short' => $this->resource->amount_paid?->getFormattedAmount() ?? '0,00'],
|
'amountPaid' => ['value' => $this->resource->amount_paid, 'readable' => $this->resource->amount_paid?->toString() ?? '0,00 Euro', 'short' => $this->resource->amount_paid?->getFormattedAmount() ?? '0,00'],
|
||||||
'amountExpected' => ['value' => $this->resource->amount, 'readable' => $this->resource->amount?->toString() ?? '0,00 Euro', 'short' => $this->resource->amount?->getFormattedAmount() ?? '0,00'],
|
'amountExpected' => ['value' => $this->resource->amount, 'readable' => $this->resource->amount?->toString() ?? '0,00 Euro', 'short' => $this->resource->amount?->getFormattedAmount() ?? '0,00'],
|
||||||
'alcoholicsAllowed' => new Age($this->resource->birthday)->getAge() >= $event->alcoholics_age,
|
'alcoholicsAllowed' => new Age($this->resource->birthday)->getAge() >= $event->alcoholics_age,
|
||||||
'localGroupPostcode' => $this->resource->localGroup()->first()->postcode,
|
'localGroupPostcode' => $this->resource->localGroup()->first()?->postcode ?? '00000',
|
||||||
'localGroupCity' => $this->resource->localGroup()->first()->city,
|
'localGroupCity' => $this->resource->localGroup()->first()?->city ?? '00000',
|
||||||
'state' => config('postCode.map.' . $this->resource->postcode),
|
'state' => config('postCode.map.' . $this->resource->postcode),
|
||||||
'localGroupState' => config('postCode.map.' . $this->resource->localGroup()->first()->postcode),
|
'localGroupState' => null !== $this->resource->localGroup()->first()?->postcode ? config('postCode.map.' . $this->resource->postcode) : '--',
|
||||||
'birthday' => $this->resource->birthday->format('d.m.Y'),
|
'birthday' => $this->resource->birthday->format('d.m.Y'),
|
||||||
'eatingHabit' => EatingHabit::where('slug', $this->resource->eating_habit)->first()->name,
|
'eatingHabit' => EatingHabit::where('slug', $this->resource->eating_habit)->first()->name,
|
||||||
'cocColor' => match ($this->resource->efz_status) {
|
'cocColor' => match ($this->resource->efz_status) {
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ class EventResource extends JsonResource{
|
|||||||
'name' => $this->event->name,
|
'name' => $this->event->name,
|
||||||
'identifier' => $this->event->identifier,
|
'identifier' => $this->event->identifier,
|
||||||
'url' => 'https://' . app('tenant')->url . '/event/' . $this->event->identifier . '/signup',
|
'url' => 'https://' . app('tenant')->url . '/event/' . $this->event->identifier . '/signup',
|
||||||
|
'urlShort' => 'https://' . app('tenant')->url . '/event/' . $this->event->identifier,
|
||||||
'location' => $this->event->location,
|
'location' => $this->event->location,
|
||||||
'postalCode' => $this->event->postal_code,
|
'postalCode' => $this->event->postal_code,
|
||||||
'email' => $this->event->email,
|
'email' => $this->event->email,
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ onMounted(async () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<label :for="props.belongsTo">{{contentData.content}}</label>
|
<label :for="props.belongsTo" v-html="contentData.content"></label>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ return new class extends Migration {
|
|||||||
Schema::create('page_texts', function (Blueprint $table) {
|
Schema::create('page_texts', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->string('content');
|
$table->longText('content');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ return new class extends Migration {
|
|||||||
$table->foreignId('cost_unit_id')->nullable()->constrained('cost_units', 'id')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreignId('cost_unit_id')->nullable()->constrained('cost_units', 'id')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
|
|
||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->string('identifier');
|
$table->string('identifier')->unique();
|
||||||
$table->string('location');
|
$table->string('location');
|
||||||
$table->string('postal_code');
|
$table->string('postal_code');
|
||||||
$table->string('email');
|
$table->string('email');
|
||||||
|
|||||||
@@ -22,12 +22,12 @@ return new class extends Migration {
|
|||||||
|
|
||||||
$table->foreignId('event_id')->constrained('events', 'id')->cascadeOnDelete()->cascadeOnUpdate();
|
$table->foreignId('event_id')->constrained('events', 'id')->cascadeOnDelete()->cascadeOnUpdate();
|
||||||
$table->foreignId('user_id')->nullable()->constrained('users', 'id')->cascadeOnDelete()->cascadeOnUpdate();
|
$table->foreignId('user_id')->nullable()->constrained('users', 'id')->cascadeOnDelete()->cascadeOnUpdate();
|
||||||
$table->string('identifier');
|
$table->string('identifier')->unique();
|
||||||
$table->string('firstname');
|
$table->string('firstname');
|
||||||
$table->string('lastname');
|
$table->string('lastname');
|
||||||
$table->string('nickname')->nullable();
|
$table->string('nickname')->nullable();
|
||||||
$table->string('participation_type');
|
$table->string('participation_type');
|
||||||
$table->string('local_group');
|
$table->string('local_group')->nullable();
|
||||||
$table->date('birthday');
|
$table->date('birthday');
|
||||||
$table->string('address_1');
|
$table->string('address_1');
|
||||||
$table->string('address_2')->nullable();
|
$table->string('address_2')->nullable();
|
||||||
@@ -63,7 +63,7 @@ return new class extends Migration {
|
|||||||
$table->dateTime('unregistered_at')->nullable();
|
$table->dateTime('unregistered_at')->nullable();
|
||||||
|
|
||||||
$table->foreign('swimming_permission')->references('slug')->on('swimming_permissions')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreign('swimming_permission')->references('slug')->on('swimming_permissions')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
$table->foreign('eating_habits')->references('slug')->on('eating_habits')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreign('eating_habit')->references('slug')->on('eating_habits')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
$table->foreign('first_aid_permission')->references('slug')->on('first_aid_permissions')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreign('first_aid_permission')->references('slug')->on('first_aid_permissions')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
$table->foreign('tenant')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreign('tenant')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
$table->foreign('local_group')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreign('local_group')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ namespace Database\Seeders;
|
|||||||
use App\Installer\DevelopmentDataSeeder;
|
use App\Installer\DevelopmentDataSeeder;
|
||||||
use App\Installer\ProductionData;
|
use App\Installer\ProductionData;
|
||||||
use App\Installer\ProductionDataSeeder;
|
use App\Installer\ProductionDataSeeder;
|
||||||
|
use App\Installer\Providers\BdpLvSachsenDataSeeder;
|
||||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
@@ -24,5 +25,12 @@ class DatabaseSeeder extends Seeder
|
|||||||
$deveopmentDataSeeder = new DevelopmentDataSeeder();
|
$deveopmentDataSeeder = new DevelopmentDataSeeder();
|
||||||
$deveopmentDataSeeder->execute();
|
$deveopmentDataSeeder->execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (env('PROVIDER')) {
|
||||||
|
case 'bdp-lv-sachsen':
|
||||||
|
$productionSeeeder = new BdpLvSachsenDataSeeder();
|
||||||
|
$productionSeeeder->execute();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
services:
|
||||||
|
mareike-app:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: docker/prod.Dockerfile
|
||||||
|
|
||||||
|
mareike-nginx:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: docker/Dockerfile.nginx
|
||||||
|
depends_on:
|
||||||
|
- mareike-app
|
||||||
|
ports:
|
||||||
|
- 9000:80
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
FROM php:8.5-fpm-alpine AS base
|
||||||
|
|
||||||
|
ARG UID=1000
|
||||||
|
ARG GID=1000
|
||||||
|
ENV USER=mareike
|
||||||
|
ENV GROUPNAME=$USER
|
||||||
|
|
||||||
|
RUN addgroup -g ${GID} -S ${GROUPNAME} \
|
||||||
|
&& adduser -u ${UID} -D -S -G ${GROUPNAME} ${USER}
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
mc \
|
||||||
|
unzip \
|
||||||
|
rsync
|
||||||
|
|
||||||
|
COPY --chmod=0755 /docker/php/composer.phar /usr/bin/composer
|
||||||
|
RUN apk add --no-cache --virtual .build-deps \
|
||||||
|
autoconf \
|
||||||
|
build-base \
|
||||||
|
libzip-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
oniguruma-dev \
|
||||||
|
nodejs \
|
||||||
|
imagemagick-dev \
|
||||||
|
npm && \
|
||||||
|
pecl install imagick && docker-php-ext-enable imagick
|
||||||
|
|
||||||
|
RUN docker-php-ext-install mysqli pdo pdo_mysql mbstring zip exif pcntl gd
|
||||||
|
|
||||||
|
COPY . /var/www/html
|
||||||
|
WORKDIR /var/www/html
|
||||||
|
RUN composer install --no-dev --optimize-autoloader
|
||||||
|
RUN npm install
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
EXPOSE 9000
|
||||||
|
|
||||||
|
RUN mv /var/www/html /src
|
||||||
|
COPY docker/run-mareike.sh /usr/local/bin/
|
||||||
|
|
||||||
|
USER mareike
|
||||||
|
CMD ["run-mareike.sh"]
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
rsync -rlDog --chown $USER:$GROUPNAME --delete --exclude=/storage /src/ /var/www/html
|
||||||
|
install -d -m 0755 -o $USER -g $GROUPNAME \
|
||||||
|
storage \
|
||||||
|
storage/framework \
|
||||||
|
storage/framework/cache \
|
||||||
|
storage/framework/sessions \
|
||||||
|
storage/framework/views \
|
||||||
|
storage/app \
|
||||||
|
storage/app/private \
|
||||||
|
storage/logs
|
||||||
|
|
||||||
|
rm .dockerignore
|
||||||
|
rm .editorconfig
|
||||||
|
rm .env.example
|
||||||
|
rm .gitattributes
|
||||||
|
rm .gitignore
|
||||||
|
rm Makefile
|
||||||
|
rm README.md
|
||||||
|
rm docker-compose.dev
|
||||||
|
rm docker-compose.prod
|
||||||
|
rm justfile
|
||||||
|
rm phpunit.xml
|
||||||
|
rm -rf node_modules
|
||||||
|
rm composer.lock
|
||||||
|
rm package-lock.json
|
||||||
|
rm package.json
|
||||||
|
rm -rf docker
|
||||||
|
rm -rf database
|
||||||
|
rm -rf app/Installer
|
||||||
|
|
||||||
|
php artisan migrate --force
|
||||||
|
|
||||||
|
exec "php-fpm"
|
||||||
@@ -23,6 +23,13 @@ require_once __DIR__ . '/../app/Domains/Event/Routes/web.php';
|
|||||||
require_once __DIR__ . '/../app/Domains/Event/Routes/api.php';
|
require_once __DIR__ . '/../app/Domains/Event/Routes/api.php';
|
||||||
|
|
||||||
|
|
||||||
|
Route::get('/LKvDUqWl', function () {
|
||||||
|
return redirect('/event/LKvDUqWl');
|
||||||
|
});
|
||||||
|
|
||||||
|
Route::get('/LKvDUqWl/', function () {
|
||||||
|
return redirect('/event/LKvDUqWl');
|
||||||
|
});
|
||||||
|
|
||||||
Route::get('/execute-crons', [CronTaskHandleProvider::class, 'run']);
|
Route::get('/execute-crons', [CronTaskHandleProvider::class, 'run']);
|
||||||
Route::get('/print-girocode/{participantToken}', GiroCodeGetController::class);
|
Route::get('/print-girocode/{participantToken}', GiroCodeGetController::class);
|
||||||
|
|||||||
Reference in New Issue
Block a user