# Questionnaire a teamer fills in after a placement with bus escort, in addition to # teamer_feedback.yaml and on the same page (App\Service\Questionnaire\DispositionContext). # # Replaces the Google form "Bus-Feedback 25-26"; the question-by-question spec, with every decision # taken, is kept locally outside the repository. Questions whose answer the # disposition already knows (travel date, destination, Reiseleitung, first pickup) are not asked: # they are snapshotted into the response's context instead. # # Labels, help texts, section titles and option labels may be edited in place. Renaming or # removing a question or option key, or changing a type, needs a new version: copy this file to # bus_feedback.v1.yaml first, then bump `version` here. Submitted answers are keyed by it. # # Parsed and validated by App\Config\QuestionnaireCatalog; QuestionnaireCatalogTest builds it. # # Question fields: key, label, type (text | textarea | choice | multi | date | rating), # required (default false), help, widget (choice only: radio | dropdown, default radio), # options (choice and multi only), show_if ({question, equals | in | lte}, earlier questions only). key: bus_feedback version: 1 title: "Bus-Feedback" sections: - key: bus_trip title: "Busfahrt" questions: - key: direction label: "Hin- oder Rückfahrt" type: choice required: true options: - { key: outbound, label: "Hinfahrt" } - { key: return, label: "Rückfahrt" } - key: bus_company label: "Bus-Unternehmen:" type: choice widget: dropdown required: true options: - { key: boonk, label: "Boonk Reisen" } - { key: piccolonia, label: "Piccolonia" } - { key: heess, label: "Heeß" } - { key: finkbeiner, label: "Finkbeiner" } - { key: other, label: "Anderes Unternehmen" } - key: bus_company_other label: "Name des Busunternehmens:" type: text required: true show_if: { question: bus_company, equals: other } - key: bus_team title: "Busteam" questions: - key: driver_names label: "Busfahrer-Namen:" type: text required: true - key: bus_first_pickup title: "1. Abfahrtsort" questions: - key: on_time_at_first_pickup label: "Bus pünktlich am 1. Abfahrtsort?" type: choice required: true options: - { key: "yes", label: "Ja" } - { key: "no", label: "Nein" } - key: delay_at_first_pickup label: "Wieviel Verspätung hatte der Bus am 1. Abfahrtsort?" type: text required: true show_if: { question: on_time_at_first_pickup, equals: "no" } - key: bus_rating title: "Bewertung Bus & Fahrer" questions: - key: overall_impression label: "Gesamteindruck des Busses" type: choice widget: dropdown required: true options: - { key: very_good, label: "Sehr gut" } - { key: good, label: "Gut" } - { key: ok, label: "OK" } - { key: not_so_good, label: "nicht so gut" } - { key: bad, label: "schlecht" } - key: vehicle_age label: "Alter des Fahrzeugs" type: choice widget: dropdown required: true options: - { key: very_new, label: "Sehr neu" } - { key: new, label: "neu" } - { key: ok, label: "OK" } - { key: somewhat_old, label: "etwas älter" } - { key: very_old, label: "sehr alt" } - key: seating_comfort label: "Sitzkomfort im Bus" type: choice widget: dropdown required: true options: - { key: very_good, label: "Sehr gut" } - { key: good, label: "Gut" } - { key: ok, label: "OK" } - { key: not_so_good, label: "nicht so gut" } - { key: bad, label: "schlecht" } - key: driver_friendliness label: "Freundlichkeit der Fahrer" type: choice widget: dropdown required: true options: - { key: very_friendly, label: "Sehr freundlich" } - { key: friendly, label: "freundlich" } - { key: ok, label: "OK" } - { key: not_so_friendly, label: "nicht so freundlich" } - { key: unfriendly, label: "unfreundlich" } - key: breaks label: "Pausenzeiten" type: choice widget: dropdown required: true options: - { key: very_good, label: "Sehr gut" } - { key: good, label: "Gut" } - { key: ok, label: "OK" } - { key: not_so_good, label: "nicht so gut" } - { key: unacceptable, label: "geht gar nicht" } - key: temperature label: "Temperatur im Bus" type: choice widget: dropdown required: true options: - { key: very_good, label: "Sehr gut" } - { key: good, label: "Gut" } - { key: ok, label: "OK" } - { key: not_so_good, label: "nicht so gut" } - { key: unacceptable, label: "geht gar nicht" } - key: guest_behaviour label: "Verhalten der Gäste im Bus" type: choice widget: dropdown required: true options: - { key: very_good, label: "Sehr gut" } - { key: good, label: "Gut" } - { key: ok, label: "OK" } - { key: not_so_good, label: "nicht so gut" } - { key: unacceptable, label: "geht gar nicht" } - key: bus_pickups title: "Ladestellen" questions: - key: drivers_knew_pickups label: "Waren den Fahrern alle Abfahrtsorte bekannt?" type: choice required: true options: - { key: "yes", label: "Ja" } - { key: "no", label: "Nein" } - key: unknown_pickups label: "Welche Abfahrtsorte waren nicht bekannt? Gab es dadurch Probleme?" type: textarea required: true show_if: { question: drivers_knew_pickups, equals: "no" } - key: bus_destination title: "Zielkenntnis" questions: - key: drivers_knew_destination label: "War den Busfahrern der Zielort und die Ausladestelle bekannt?" type: choice required: true options: - { key: "yes", label: "Ja" } - { key: "no", label: "Nein" } - key: bus_equipment title: "Bus, Technik & Allgemeines" questions: - key: video label: "Video/DVD-Gerät" type: choice widget: dropdown required: true options: - { key: working, label: "funktionstüchtig" } - { key: broken, label: "defekt" } - { key: missing, label: "nicht vorhanden" } - key: wc label: "WC" type: choice widget: dropdown required: true options: - { key: working, label: "funktionstüchtig" } - { key: broken, label: "defekt" } - { key: closed, label: "nicht geöffnet" } - key: luggage label: "Gepäck" type: choice widget: dropdown required: true options: - { key: trailer, label: "Anhänger" } - { key: ski_box, label: "Skikoffer" } - { key: trailer_and_ski_box, label: "Anhänger und Skikoffer" } - { key: none, label: "Kein Anhänger oder Skikoffer" } - key: smoking label: "Rauchen im Bus" type: choice widget: dropdown required: true options: - { key: driver, label: "Busfahrer hat im Bus geraucht" } - { key: driver_and_guests, label: "Busfahrer und Gäste haben im Bus geraucht" } - { key: nobody, label: "Es wurde nicht geraucht" } - key: snow_chains label: "Schneeketten" type: choice widget: dropdown required: true options: - { key: fitted, label: "Fahrer hat Ketten aufgezogen" } - { key: not_needed, label: "Ketten wurden nicht gebraucht" } - { key: not_fitted, label: "Ketten nicht aufgezogen (trotz starkem Schneefall)" } - key: bus_damage title: "Schäden" questions: - key: bus_damage label: "Entstanden während der Fahrt Schäden am Bus?" type: choice widget: dropdown required: true options: - { key: none, label: "Keine Schäden" } - { key: settled_with_driver, label: "Bereits mit Fahrer abgeklärt" } - { key: claim_expected, label: "Da wird vom Busunternehmen noch was kommen" } - key: damage_description label: "Was ist passiert?" type: textarea required: true show_if: { question: bus_damage, equals: claim_expected } - key: bus_remarks title: "Anmerkungen zur Busfahrt" questions: - key: bus_remarks label: "Das ging gar nicht / ist besonders hervorzuheben:" type: textarea