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 -%}
+
+ |
+ {{- child.vars.label -}}
+ |
+
+ {{- form_widget(child, { 'attr': child_attr }) -}}
+ |
+
+ {% endfor -%}
+
+{%- 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',