diff --git a/assets/styles/_base.css b/assets/styles/_base.css index 728e3ee..98befd2 100644 --- a/assets/styles/_base.css +++ b/assets/styles/_base.css @@ -46,11 +46,11 @@ } .bg-outer--1 { - background-image: url('../images/bg_4.jpg'), linear-gradient(311.39deg, #0070E0 10.55%, #165883 53.93%, #18527B 80.73%); + background-image: url('../images/bg_4.jpg'), linear-gradient(131.39deg, #0070E0 10.55%, #165883 53.93%, #18527B 80.73%); } .bg-outer--2 { - background-image: url('../images/bg_5.jpg'), linear-gradient(311.39deg, #0070E0 10.55%, #165883 53.93%, #18527B 80.73%); + background-image: url('../images/bg_5.jpg'), linear-gradient(131.39deg, #0070E0 10.55%, #165883 53.93%, #18527B 80.73%); } .bg-inner { diff --git a/src/Form/Service/ParticipantFieldOptionsProvider.php b/src/Form/Service/ParticipantFieldOptionsProvider.php index ca26966..729b607 100644 --- a/src/Form/Service/ParticipantFieldOptionsProvider.php +++ b/src/Form/Service/ParticipantFieldOptionsProvider.php @@ -88,6 +88,8 @@ class ParticipantFieldOptionsProvider extends AbstractFieldOptionsProvider return [ 'label' => 'Zimmer', + 'expanded' => true, + 'multiple' => false, // No placeholder when only one room available - the only option is pre-selected 'placeholder' => $singleChoice ? false : 'Nicht zugeordnet', 'choices' => $choices, diff --git a/templates/booking/_form_theme.html.twig b/templates/booking/_form_theme.html.twig index 11238ff..4ee14e7 100644 --- a/templates/booking/_form_theme.html.twig +++ b/templates/booking/_form_theme.html.twig @@ -67,7 +67,7 @@ {% if choiceData %} - {% if choiceData.price is not null %} + {% if choiceData.price is defined and choiceData.price is not null %} {{ choiceData.price | format_currency('EUR') }} {% endif %} @@ -84,3 +84,28 @@ {% endfor -%} {%- endblock choice_widget_expanded -%} + +{# Room assignment field - simple scalar choices (label => id), no price column #} +{%- block _participant_assignedRoomId_widget -%} + + {%- for child in form %} + {%- set child_attr = {} -%} + {%- if attr['hx-trigger'] is defined -%} + {%- set child_attr = { + 'hx-trigger': attr['hx-trigger'], + 'hx-post': attr['hx-post'], + 'hx-target': attr['hx-target']|default('#main-content'), + 'hx-swap': attr['hx-swap'] + } -%} + {%- endif -%} + + + + + {% endfor -%} +
+
{{- child.vars.label -}}
+
+ {{- form_widget(child, { 'attr': child_attr }) -}} +
+{%- endblock _participant_assignedRoomId_widget -%} diff --git a/templates/booking/_participant_form.html.twig b/templates/booking/_participant_form.html.twig index bc243ae..290fef5 100644 --- a/templates/booking/_participant_form.html.twig +++ b/templates/booking/_participant_form.html.twig @@ -232,13 +232,13 @@ {# Room assignment - hidden until date of birth is provided, or shown as static text in edit mode #} {% if form.assignedRoomId is defined or is_static_text('assignedRoomId', bookingDto, participantIndex) %} - {% set assignedRoom = bookingDto.travel.getRoomById(form.vars.data.participant.assignedRoomId) %} - {% set roomLabel = assignedRoom ? assignedRoom.label : 'Kein Zimmer zugewiesen' %}
-

- Unterkunft -

-
+
+ {% set assignedRoom = bookingDto.travel.getRoomById(form.vars.data.participant.assignedRoomId) %} + {% set roomLabel = assignedRoom ? assignedRoom.label : 'Kein Zimmer zugewiesen' %} +

+ Unterkunft +

{{ macros.field_or_static(form, 'assignedRoomId', 'Zimmer', roomLabel, bookingDto, participantIndex, { 'attr': { 'hx-trigger': 'change',