{% extends 'admin_base.html.twig' %} {% block title %}Kursdetails - {{ course.name }}{% endblock %} {% block header_title %}Kursdetails{% endblock %} {% block stylesheets %} {{ parent() }} {% endblock %} {% block content %}
Zurück zur Übersicht

{{ course.name }}

{% if course.isActive %} Aktiv {% else %} Inaktiv {% endif %}

Grundinformationen

Kursname: {{ course.name }}
{% if course.description %}
Beschreibung: {{ course.description|nl2br }}
{% endif %}
Kursart: {{ course.typeLabel }}
Kurstyp: {{ course.scheduleTypeLabel }}
{% if course.category %}
Kategorie: {{ course.category }}
{% endif %}

Terminplanung

{% if course.weekdayLabel %}
Wochentag: {{ course.weekdayLabel }}
{% endif %} {% if course.startTime %}
Uhrzeit: {{ course.startTime|date('H:i') }} - {{ course.endTime|date('H:i') }} Uhr
{% endif %} {% if course.startDate and course.endDate %}
Zeitraum: {{ course.startDate|date('d.m.Y') }} - {{ course.endDate|date('d.m.Y') }}
{% elseif course.startDate %}
Startdatum: {{ course.startDate|date('d.m.Y') }}
{% endif %} {% if course.specificDates and course.specificDates|length > 0 %}
Einzeltermine:
    {% for dateStr in course.specificDates %}
  • {{ dateStr|date('d.m.Y') }}
  • {% endfor %}
{% endif %} {% if course.monthlyRecurrence %}
Wiederholung: {% set weekLabels = {0: 'Jeden', 1: 'Ersten', 2: 'Zweiten', 3: 'Dritten', 4: 'Vierten', '-1': 'Letzten'} %} {% set dayLabels = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'] %} {% set w = course.monthlyRecurrence.weekOfMonth ?? 1 %} {% set d = course.monthlyRecurrence.dayOfWeek ?? 6 %} {% if w == 0 %}Jeden {{ dayLabels[d] }} (wöchentlich){% else %}{{ weekLabels[w] }} {{ dayLabels[d] }} im Monat{% endif %} {% if course.monthlyRecurrence.startDate %} ({{ course.monthlyRecurrence.startDate|date('d.m.Y') }} - {{ course.monthlyRecurrence.endDate ? course.monthlyRecurrence.endDate|date('d.m.Y') : 'unbegrenzt' }}) {% endif %}
{% endif %} {% if course.bookableTimeSlots and course.bookableTimeSlots|length > 0 %}
Verfügbare Zeitslots:
    {% for slot in course.bookableTimeSlots %}
  • {{ slot.start }} - {{ slot.end }}
  • {% endfor %}
{% endif %} {% if course.excludedDates and course.excludedDates|length > 0 %}
Ausgeschlossene Termine:
    {% for dateStr in course.excludedDates %}
  • {{ dateStr|date('d.m.Y') }}
  • {% endfor %}
{% endif %}

Teilnehmer & Preise

{% if course.minAge or course.maxAge %}
Altersgruppe: {{ course.minAge ?: 0 }} - {{ course.maxAge ?: '∞' }} Jahre
{% endif %} {% if course.maxParticipants %}
Freie Plätze: {{ course.availablePlaces }} von {{ course.maxParticipants }} ({{ course.bookedPlaces }} belegt{% if course.externallyBookedPlaces > 0 %}, davon {{ course.externallyBookedPlaces }} außerhalb des Systems vergeben{% endif %}{% if course.showAsFullyBooked %} – manuell als ausgebucht markiert{% endif %})
{% endif %}
Kursleiter: {% if course.instructorNotNeeded %} Kein Kursleiter benötigt (bereits besetzt oder nicht erforderlich) {% elseif course.requiredInstructors %} {{ course.requiredInstructors }} benötigt {% else %} – {% endif %}
{% if course.price %}
Preis: {{ course.price }}€
{% endif %} {% if course.priceMonthly %}
Monatspreis: {{ course.priceMonthly }}€ / Monat
{% endif %} {% if course.type == 'adult_abo' and (course.priceSenior or course.priceStudent) %}
Erwachsenen-Tarife:
    {% if course.priceMonthly %}
  • Standard: {{ course.priceMonthly }}€
  • {% endif %} {% if course.priceSenior %}
  • Senior: {{ course.priceSenior }}€
  • {% endif %} {% if course.priceStudent %}
  • Student: {{ course.priceStudent }}€
  • {% endif %}
{% endif %} {% if course.useTicketCard and course.priceTicketCard %}
10er-Karte: {{ course.priceTicketCard }}€
{% endif %} {% if course.siblingPrices and course.siblingPrices|length > 0 %}
Geschwisterpreise:
    {% for price in course.siblingPrices %}
  • Geschwisterkind {{ loop.index }}: {{ price }}€
  • {% endfor %}
{% endif %}

Optionen & Einstellungen

Geschwisterkinder erlaubt: {% if course.allowSiblings and course.siblingPrices|length > 0 %} Ja, maximal {{ course.siblingPrices|length }} ({{ course.siblingPrices|map(p => p|number_format(2, ',', '.') ~ ' €')|join(' / ') }}) {% elseif course.allowSiblings %} Ja, aber ohne Geschwisterpreis — nicht buchbar {% else %} Nein {% endif %}
Mehrfachbuchungen erlaubt: {% if course.allowMultipleBookings %} Ja {% else %} Nein {% endif %}
Warteliste aktiviert: {% if course.useWaitlist %} Ja {% else %} Nein {% endif %}
Automatisch auf Warteliste wenn voll: {% if course.autoWaitlistWhenFull %} Ja {% else %} Nein {% endif %}
Als ausgebucht anzeigen: {% if course.showAsFullyBooked %} Ja {% else %} Nein {% endif %}
Teamgröße erforderlich: {% if course.requiresTeamSize %} Ja {% else %} Nein {% endif %}
{% if course.color %}
Farbe: {{ course.color }}
{% endif %} {% if course.sortOrder %}
Sortierreihenfolge: {{ course.sortOrder }}
{% endif %}
{% if course.primaryInstructor or course.substituteInstructors|length > 0 or course.instructorNotNeeded %}

Kursleiter

{% if course.instructorNotNeeded and not course.primaryInstructor and course.substituteInstructors|length == 0 %}
Status: Kein Kursleiter benötigt (bereits besetzt oder nicht erforderlich)
{% endif %} {% if course.primaryInstructor %}
Hauptkursleiter: {{ course.primaryInstructor.fullName }}
{% endif %} {% if course.substituteInstructors|length > 0 %}
Vertretungen:
    {% for instructor in course.substituteInstructors %}
  • {{ instructor.fullName }}
  • {% endfor %}
{% endif %}
{% endif %} {% if course.additionalInfo %}

Zusätzliche Informationen

{{ course.additionalInfo|nl2br }}

{% endif %}

Statistiken

Gesamtbuchungen: {{ course.bookings|length }}
Belegte Plätze (inkl. Geschwister): {{ course.bookedPlaces }}{% if course.maxParticipants %} von {{ course.maxParticipants }}{% endif %}
Bestätigte Buchungen: {{ course.bookings|filter(b => b.status == 'confirmed')|length }}
Ausstehende Buchungen: {{ course.bookings|filter(b => b.status == 'pending')|length }}
Warteliste: {{ course.waitlistCount }}
Erstellt am: {{ course.createdAt|date('d.m.Y H:i') }}
Zuletzt aktualisiert: {{ course.updatedAt|date('d.m.Y H:i') }}
{% endblock %}