feat: authenticated booking

This commit is contained in:
Björn Fromme
2025-10-24 17:07:08 +02:00
parent 647a25a78f
commit b63804df88
13 changed files with 866 additions and 50 deletions
+93 -14
View File
@@ -46,24 +46,88 @@
<div id="participant-form" class="space-y-4">
{# Personal data section #}
<div class="grid grid-cols-2 gap-4">
{{ form_row(form.firstName) }}
{{ form_row(form.lastName) }}
{{ form_row(form.dateOfBirth, {
'attr': {
'hx-trigger': 'change',
'hx-post': path(refreshRouteName, refreshRouteParams|default({index: participantIndex})),
'hx-target': '#main-content',
'hx-swap': 'innerHTML'
}
}) }}
{{ form_row(form.gender) }}
{{ form_row(form.nationality) }}
{% if form.firstName is defined %}
{{ form_row(form.firstName) }}
{% else %}
<div>
<label class="font-semibold mb-1 block">Vorname</label>
<div class="text-sm text-gray-600">{{ form.vars.data.participant.firstName }}</div>
</div>
{% endif %}
{% if form.lastName is defined %}
{{ form_row(form.lastName) }}
{% else %}
<div>
<label class="font-semibold mb-1 block">Nachname</label>
<div class="text-sm text-gray-600">{{ form.vars.data.participant.lastName }}</div>
</div>
{% endif %}
{% if form.dateOfBirth is defined %}
{{ form_row(form.dateOfBirth, {
'attr': {
'hx-trigger': 'change',
'hx-post': path(refreshRouteName, refreshRouteParams|default({index: participantIndex})),
'hx-target': '#main-content',
'hx-swap': 'innerHTML'
}
}) }}
{% else %}
<div>
<label class="font-semibold mb-1 block">Geburtsdatum</label>
<div class="text-sm text-gray-600">{{ form.vars.data.participant.dateOfBirth ? form.vars.data.participant.dateOfBirth|date('d.m.Y') : '-' }}</div>
</div>
{% endif %}
{% if form.gender is defined %}
{{ form_row(form.gender) }}
{% else %}
<div>
<label class="font-semibold mb-1 block">Geschlecht</label>
<div class="text-sm text-gray-600">
{% if form.vars.data.participant.gender == 'M' %}
männlich
{% elseif form.vars.data.participant.gender == 'W' %}
weiblich
{% elseif form.vars.data.participant.gender == 'D' %}
divers
{% else %}
-
{% endif %}
</div>
</div>
{% endif %}
{% if form.nationality is defined %}
{{ form_row(form.nationality) }}
{% else %}
<div>
<label class="font-semibold mb-1 block">Nationalität</label>
<div class="text-sm text-gray-600">{{ form.vars.data.participant.nationality ?: '-' }}</div>
</div>
{% endif %}
</div>
{# Contact information #}
<div class="grid grid-cols-2 gap-4">
{{ form_row(form.email) }}
{{ form_row(form.mobile) }}
{% if form.email is defined %}
{{ form_row(form.email) }}
{% else %}
<div>
<label class="font-semibold mb-1 block">E-Mail</label>
<div class="text-sm text-gray-600">{{ form.vars.data.participant.email }}</div>
</div>
{% endif %}
{% if form.mobile is defined %}
{{ form_row(form.mobile) }}
{% else %}
<div>
<label class="font-semibold mb-1 block">Telefon (mobil)</label>
<div class="text-sm text-gray-600">{{ form.vars.data.participant.mobile ?: '-' }}</div>
</div>
{% endif %}
</div>
{# Address #}
@@ -74,6 +138,21 @@
{{ form_row(form.address.city) }}
{{ form_row(form.address.country) }}
</div>
{% else %}
<div>
<label class="font-semibold mb-1 block">Adresse</label>
{% if form.vars.data.participant.address %}
<div class="text-sm text-gray-600">
{% if form.vars.data.participant.address.street %}{{ form.vars.data.participant.address.street }}<br>{% endif %}
{% if form.vars.data.participant.address.postCode or form.vars.data.participant.address.city %}
{{ form.vars.data.participant.address.postCode }} {{ form.vars.data.participant.address.city }}<br>
{% endif %}
{% if form.vars.data.participant.address.country %}{{ form.vars.data.participant.address.country }}{% endif %}
</div>
{% else %}
<div class="text-sm text-gray-600">-</div>
{% endif %}
</div>
{% endif %}
{# Room assignment #}