{% extends 'layout_booking.html.twig' %} {% block content %} {% include '_partials/_flashes.html.twig' %} {{ form_start(form, { 'attr': { 'class': 'flex-1 flex flex-col min-h-0' } }) }}
{# Sidebar summary #} {% block booking_summary %}
{% include 'booking/_summary.html.twig' with { 'bookingDto': bookingEditContext.bookingDto, 'summaryData': bookingEditContext.summaryData, 'mutableData': bookingEditContext.mutableData|default(null) } %}
{% endblock %} {# Main content area #}
{# Header - desktop only #} {# Scrollable content #}
{% block participant_cards %}

Teilnehmer:innen

{% if app.session.flashBag.peek('booking_edit_notice')|length > 0 %} {% include '_partials/_alert.html.twig' with { level: 'info', title: 'Hinweis', messages: app.flashes('booking_edit_notice') } %} {% endif %} {% if bookingEditContext.isDirty %} {% include '_partials/_alert.html.twig' with { level: 'warning', title: 'Ungespeicherte Änderungen', messages: ['Du hast Änderungen an der Buchung vorgenommen. Bitte denke daran, abschließend den \'Buchung aktualisieren\' Button zu klicken.'] } %} {% endif %} {# Display blocking issues first; otherwise show the attention scan as a calm warning #} {% if bookingEditContext.hasBlockingValidationErrors %} {% include '_partials/_alert.html.twig' with { level: 'error', title: 'Teilnehmerdaten prüfen', messages: ['Die Daten einiger Teilnehmer:innen sind noch unvollständig oder fehlerhaft. Bitte bearbeite die markierten Teilnehmer.'] } %} {% elseif bookingEditContext.missingValueLabelsByParticipantIndex|length > 0 %} {% include '_partials/_alert.html.twig' with { level: 'warning', title: 'Teilnehmerdaten prüfen', messages: ['Die Daten von ' ~ (bookingEditContext.missingValueLabelsByParticipantIndex|length) ~ ' Teilnehmer:innen sind noch unvollständig oder fehlerhaft. Bitte bearbeite die markierten Teilnehmer.'] } %} {% endif %}
{% for participant in bookingEditContext.bookingDto.participants %} {% set isCanceled = (bookingEditContext.bookingData.participantsStatus[loop.index0] ?? null) == 'S' %} {% set attentionLabels = bookingEditContext.missingValueLabelsByParticipantIndex[loop.index0]|default([]) %} {% include 'booking/_participant_card.html.twig' with { 'cardData': bookingEditContext.cardsData[loop.index0], 'index': loop.index0, 'participantNumber': loop.index, 'mode': 'edit', 'bookingId': bookingEditContext.bookingData.id, 'isCanceled': isCanceled, 'isSubmitted': bookingEditContext.isSubmitted, 'needsAttention': attentionLabels is not empty, 'attentionLabels': attentionLabels, } %} {% endfor %}
{% endblock %}
{# Fixed footer #}
{% if bookingEditContext.isDirty or bookingEditContext.hasBlockingValidationErrors %} {% endif %}
{{ form_rest(form) }} {{ form_end(form) }} {% endblock %}